java gui table_JAVA GUI学习 - JTable表格组件学习_C ***

1 /**

2 * JTable高级应用3 *@authorWfei4 *5 */

6 public class JTableKnow_C extendsJFrame7 {8 JTable jTable;9 MyJMenuItem jMenuItem;10 MyJMenuItem jMenuItem2;11 JPopupMenu jPopupMenu;12 JMenu jMenu;13 publicJTableKnow_C()14 {15 this.setBounds(300, 100, 400, 300);16 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);17

18 Object[][] tableData = new Object[3][4];19 tableData[0] = new Object[]{"1-1","1-2","左",true};20 tableData[1] = new Object[]{"2-1","2-2","右",false};21 tableData[2] = new Object[]{"3-1","3-2","左",true};22 Object[] tableColName = new Object[]{"第一列名","第二列名","第三列名","第四列名"};23 //创建表格模型

24 DefaultTableModel defaultTableModel = newDefaultTableModel(tableData,tableColName);25 //实例化表格

26 jTable = newJTable(defaultTableModel)27 {28 /**

29 * 判断某一列是否为boolean类型,如果是:以复选框显示30 */

31 @Override32 public Class> getColumnClass(intcolumn)33 {34 //TODO Auto-generated method stub

35 return jTable.getValueAt(0, column).getClass();36 }37 /**

38 * 设置某一行、某一列、或某个单元格是否可编辑39 */

40 @Override41 public boolean isCellEditable(int row, intcolumn)42 {43 //TODO Auto-generated method stub

44 if (row == 1 && column == 1)45 {46 return false;47 }48 else{49 return true;50 }51 }52 //表格的标题,必须配合滚动面板一起使用才能显示出来

53 };54 //实例化滚动面板

55 JScrollPane jScrollPane = newJScrollPane(jTable);56 this.add(jScrollPane);57

58 jPopupMenu = newJPopupMenu();59 jMenu = new JMenu("更改为:");60 jMenuItem = new MyJMenuItem("左",1);61 jMenuItem2 = new MyJMenuItem("右",1);62 jPopupMenu.add(jMenu);63 jMenu.add(jMenuItem);jMenu.add(jMenuItem2);64

65 jTable.setComponentPopupMenu(jPopupMenu);66 jPopupMenu.addPopupMenuListener(newPopupMenuListener()67 {68 /**

69 * 设置个性化显示菜单的监听事件70 */

71 @Override72 public voidpopupMenuWillBecomeVisible(PopupMenuEvent e)73 {74 int index =jTable.getSelectedRow();75 if (index != -1)76 {77 String str = jTable.getValueAt(index, 2).toString();78 if (str.equals("左"))79 {80 jMenuItem.setVisible(false);81 jMenuItem2.setVisible(true);82 }83 else{84 jMenuItem.setVisible(true);85 jMenuItem2.setVisible(false);86 }87 }88 }89 @Override90 public voidpopupMenuWillBecomeInvisible(PopupMenuEvent e)91 {92 }93 @Override94 public voidpopupMenuCanceled(PopupMenuEvent e)95 {96 }97 });98 //为菜单的每个jMenuItem加上监听器99 //addListenerToJMenuItem(jMenu);

100 }101 //public void addListenerToJMenuItem(Container container)102 //{103 //for (Component component : container.getComponents())104 //{105 //if (component == JMenuItem.class)106 //{107 //System.out.println("1111111");108 //JMenuItem jMenuItem = (JMenuItem) component;109 //jMenuItem.addActionListener(new MenuItemListener());110 //}111 //else {112 //System.out.println("2222222");113 //JMenu jMenu = (JMenu) component;114 //addListenerToJMenuItem(jMenu);115 //}116 //}117 //}

118 /**

119 * 菜单项监听器120 *@authorAdministrator121 *122 */

123 private class MenuItemListener implementsActionListener124 {125

126 @Override127 public voidactionPerformed(ActionEvent e)128 {129 JMenuItem item =(JMenuItem)e.getSource();130 //TODO Auto-generated method stub131 //JOptionPane.showMessageDialog(null, item.getText());132 //判断是否有选中项

133 if(jTable.getSelectedRow() != -1)134 {135 //判断按钮

136 if (item ==jMenuItem)137 {138 JOptionPane.showMessageDialog(null, "已更改为:右");139 }140 else{141 JOptionPane.showMessageDialog(null, "已更改为:左");142 }143 }144 else

145 {146 JOptionPane.showMessageDialog(null, "请选择修改的用户");147 }148 }149

150 }151 public static voidmain(String[] args)152 {153 JTableKnow_C jTableKnowC = newJTableKnow_C();154 jTableKnowC.setVisible(true);155 }156 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值