急求!!!关于JTable 与 JCheckBox

wonfei 2005-10-12 10:41:28
取出表中数据,放到表模(TableModel)里面,如何将每行数据前增加一个复选框(JCheckBox),我用的是自定义CellRenderer和自定义的CellEditor,显示是出来了,但每次选取前面的复选框都没用.
项目很紧,已经没时间研究了,请各位高手伸出援助之手,给出详细代码!万分感谢!
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yonghar 2005-10-13
  • 打赏
  • 举报
回复
写大概的。

class ExampleTableCellEditor extends AbstractCellEditor implements
TableCellEditor {
ExampleTableCellEditor(){
defaultPanel = new JPanel(new BorderLayout());

usedDefaultCheckBox = new JCheckBox();
defaultLabel = new JLabel();

defaultPanel.add(usedDefaultCheckBox, BorderLayout.WEST);
defaultPanel.add(defaultLabel, BorderLayout.CENTER);
}

public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
//初始数据,假设value数据类型为AAAA中可以取出数据和是否选择
usedDefaultCheckBox.setSelected(((AAAA)value).isSelected());
defaultLabel.setText((((AAAA)value).getData());

return defaultPanel;
}

public Object getCellEditorValue() {
//假设表单元得数据类型AAAA,具体实际需要自己修改
AAAA a = new AAAA();
a.setSelected(usedDefaultCheckBox.isSelected());
a.setData(defaultLabel.getText);
return a;
}

public boolean isCellEditable(EventObject anEvent) {
if (anEvent instanceof MouseEvent) {
return ((MouseEvent) anEvent).getClickCount() >= clickCountToStart;
}
return false;
}

private int clickCountToStart = 1;//单击可以编辑,如果需要双击才可编辑,设置为2
private JCheckBox usedDefaultCheckBox;
private JLabel defaultLabel;//如果要能够编辑数据值,改用JTextField
private JPanel defaultPanel ;
}
wonfei 2005-10-12
  • 打赏
  • 举报
回复
难道就这样沉下去了!

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧