Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java SE 综合讨论区
打印话题 寄给朋友 订阅主题 |
作者 | 求助!JTable中显示JCheckBox(浪费大家时间了,我找到答案了)=>又有新问题row selection |
joelwx
发贴: 97 积分: 2 |
于 2006-09-26 11:21
我的JTable里有一列是on/off,想用个JCheckBox去显示它. http://javaalmanac.com/egs/javax.swing.table/ComboBox.html 这里倒是有个相似的例子,可试了没用啊. 问题:是否我在JTable.getColumnModel(index).setCellRenderer()里设置了MyCellRenderer(extends JCheckBox implements TableCellRenderer)后,这一列中所有行都会显示为一个JCheckBox呢??还是我要一行一行得设?很头晕!! 希望哪位大侠给个简短点的例子! ========================== private class MyTableCellRenderer extends JCheckBox implements TableCellRenderer{ public MyTableCellRenderer(Object value){ super(); setValue(value); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } // Select the current value setValue(value); return this; } protected void setValue(Object value){ this.setSelected(value.toString().trim().equals("1")); } } =================== 答案: DefaultTableModel model=new DefaultTableModel(){ public Class getClass(int index){ if(index==2) return Boolean.class; return super.getClass(index); } } ===================== 新问题: 在JTable上右击后会先选中鼠标所在的row,再出来一个PopupMenu. public void mouseClicked(MouseEvent e){ int row_Selected_Index=JTable.rowAtPoint(new Point(e.getX(),e.getY())); JTable.setRowSelectioninterval(row_Selected_Index,row_Selected_Index); PopupMenu.show(e.getComponent(),e.getX(),e.getY()); System.out.println(JTable.getSelectedRow()); } ======================== 从输出上看结果是对的,点哪个出哪个,可显示不对. 被选中那一行并没有SelectionBackground. 从界面上看,这一行并没有被选中(虽然已被选中了)...... repaint也不行~~ 只有当PopupMenu消失以后,SelectionBackground就出来了... 不知道原因,请指教!! google了一下,没找到答案!
joelwx edited on 2006-09-26 14:36
好多不会唉... |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
12627 | 求助!JTable中显示JCheckBox(浪费大家时间了,我找到答案了)=>又有新问题row selection | joelwx | 2348 | 2006-09-26 11:21 |
8150 | 标题太长?? | joelwx | 101 | 2006-09-26 14:44 |
8185 | 新发现 | joelwx | 350 | 2006-09-26 14:50 |
8089 | 终于找到了办法了~~ | joelwx | 28 | 2006-10-11 16:11 |
8396 | Re:求助!JTable中显示JCheckBox | cxp108 | 34 | 2006-10-12 08:36 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |