我有一张表,我必须添加一个JButton。
我在做
TableColumnModel colModel = table.getColumnModel();
colModel.getColumn(0).setCellEditor(new MYCellEditor(new JCheckbox()));
MyCellEditor extends DefaultCellEditor{
public MyCellEditor(JCheckbox checkbox){
super(checkbox);
Jbutton button = new JButton("Start");
//actionlistener for button.
}
}
MyRenderer extends DefaultTablecellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
//return a button for column ==0
}
我的理解是Celleditor对列中的所有单元格都有相同的按钮实例。因此,如果我单击一个按钮,文本将从“开始”更改为“停止”,但是如果我单击其他行中的按钮则无法正常工作。调试后显示文本已被删除。
我如何在每一行中有不同的按钮实例?
答案 0 :(得分:1)
@ camickr之前的Table Button Column中引用的文章answer提供了更灵活的解决方案,但您也可以发现教程How to Use Tables: Using Other Editors也很有帮助。这里讨论的ColorEditor
部分TableDialogEditDemo
,可通过Java Web Start获得。您需要相应地更改相应的ColorRenderer
。