我有一个TableCellRenderer
JTable 的自定义(ValueRenderer),单元格是Checkbox
.
如本示例所述,我已将一个附加ItemListener
到 valueRenderer 以监听复选框的状态更改(选中/取消选中)。
我的问题是,在知道源是 ValueRenderer的itemStateChanged(ItemEvent e)
情况下,我不知道如何获取包含此复选框的行。ItemEvent
你能帮助我吗?
这是我的一些代码:
自定义 TableCellRender:
public class ValueRenderer extends JCheckBox implements TableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
this.setSelected((Boolean) value);
return this;
}
}
项目监听器:
public class TableRowCheckBoxListener implements ItemListener {
private JTable hqlRequestTable;
public TableRowCheckBoxListener(JTable hqlRequestTable) {
this.hqlRequestTable = hqlRequestTable;
}
@Override
public void itemStateChanged(ItemEvent e) {
/*How do I get the row which contains the checkbox clicked knowing that :
e.getSource() == ValueRenderer
e.getItem() == ValueRender
*/
}
}