JAVA GUI学习 - JTable表格组件学习_C ***
2013-09-22 11:02
323 查看
/** * JTable高级应用 * @author Wfei * */ public class JTableKnow_C extends JFrame { JTable jTable; MyJMenuItem jMenuItem; MyJMenuItem jMenuItem2; JPopupMenu jPopupMenu; JMenu jMenu; public JTableKnow_C() { this.setBounds(300, 100, 400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object[][] tableData = new Object[3][4]; tableData[0] = new Object[]{"1-1","1-2","左",true}; tableData[1] = new Object[]{"2-1","2-2","右",false}; tableData[2] = new Object[]{"3-1","3-2","左",true}; Object[] tableColName = new Object[]{"第一列名","第二列名","第三列名","第四列名"}; //创建表格模型 DefaultTableModel defaultTableModel = new DefaultTableModel(tableData,tableColName); //实例化表格 jTable = new JTable(defaultTableModel) { /** * 判断某一列是否为boolean类型,如果是:以复选框显示 */ @Override public Class<?> getColumnClass(int column) { // TODO Auto-generated method stub return jTable.getValueAt(0, column).getClass(); } /** * 设置某一行、某一列、或某个单元格是否可编辑 */ @Override public boolean isCellEditable(int row, int column) { // TODO Auto-generated method stub if (row == 1 && column == 1) { return false; } else { return true; } } //表格的标题,必须配合滚动面板一起使用才能显示出来 }; //实例化滚动面板 JScrollPane jScrollPane = new JScrollPane(jTable); this.add(jScrollPane); jPopupMenu = new JPopupMenu(); jMenu = new JMenu("更改为:"); jMenuItem = new MyJMenuItem("左",1); jMenuItem2 = new MyJMenuItem("右",1); jPopupMenu.add(jMenu); jMenu.add(jMenuItem);jMenu.add(jMenuItem2); jTable.setComponentPopupMenu(jPopupMenu); jPopupMenu.addPopupMenuListener(new PopupMenuListener() { /** * 设置个性化显示菜单的监听事件 */ @Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { int index = jTable.getSelectedRow(); if (index != -1) { String str = jTable.getValueAt(index, 2).toString(); if (str.equals("左")) { jMenuItem.setVisible(false); jMenuItem2.setVisible(true); } else { jMenuItem.setVisible(true); jMenuItem2.setVisible(false); } } } @Override public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { } @Override public void popupMenuCanceled(PopupMenuEvent e) { } }); //为菜单的每个jMenuItem加上监听器 // addListenerToJMenuItem(jMenu); } // public void addListenerToJMenuItem(Container container) // { // for (Component component : container.getComponents()) // { // if (component == JMenuItem.class) // { // System.out.println("1111111"); // JMenuItem jMenuItem = (JMenuItem) component; // jMenuItem.addActionListener(new MenuItemListener()); // } // else { // System.out.println("2222222"); // JMenu jMenu = (JMenu) component; // addListenerToJMenuItem(jMenu); // } // } // } /** * 菜单项监听器 * @author Administrator * */ private class MenuItemListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { JMenuItem item = (JMenuItem)e.getSource(); // TODO Auto-generated method stub //JOptionPane.showMessageDialog(null, item.getText()); //判断是否有选中项 if(jTable.getSelectedRow() != -1) { //判断按钮 if (item == jMenuItem) { JOptionPane.showMessageDialog(null, "已更改为:右"); } else { JOptionPane.showMessageDialog(null, "已更改为:左"); } } else { JOptionPane.showMessageDialog(null, "请选择修改的用户"); } } } public static void main(String[] args) { JTableKnow_C jTableKnowC = new JTableKnow_C(); jTableKnowC.setVisible(true); } }
相关文章推荐
- JAVA GUI学习 - JTable表格组件学习_A ***
- Java Swing中的表格(JTable)和树(JTree)组件使用实例
- JXCELL实例学习与研究(七) 之 JAVA的GUI对JXCELL的小客户端,显示各种表格状态的方法
- JAVA GUI学习 - JMenuBar菜单条、JMenu菜单、JMenuItem菜单项组件学习
- JAVA GUI学习 - JTree树结构组件学习 ***
- JAVA GUI学习 - JPopupMenu鼠标右键菜单组件学习
- JAVA GUI学习 - JDialog模式、非模式窗口组件学习
- JAVA GUI学习 - JOptionPane对话框组件学习
- JAVA GUI学习 - JSplitPane分屏组件学习
- JAVA GUI学习 - JProgressBar进度条组件摘录
- JAVA GUI学习 - JList列表、JScrollPane滚动条组件学习
- JAVA GUI学习 - JTabbedPane选项卡组件学习
- Java学习笔记-------Java引出GUI组件的事件 ???
- Java学习笔记(二)GUI组件(1)
- 18. JAVA 图形界面 Part 3(表格JTable、本章要点、习题) ----- 学习笔记
- jav中GUI之表格jTable组件详解
- Java Swing组件编程之JTable表格用法实例详解
- java的JTable组件显示mysql数据库表中的数据以及将JTable表格中的数据存储到数据库中
- JAVA(学习笔记1.1)——GUI组件与用户界面设计
- JAVA GUI学习 - JFileChooser文件选择器组件学习:未包括JFileChooser系统类学习