У меня есть пользовательский TableCellRenderer
(ValueRenderer) для JTable, ячейка - Checkbox
.
Я добавил ItemListener
к valueRenderer для прослушивания изменения состояния флажка (выбрано / снято), как указано в этом примере .
Моя проблема в том, что внутри itemStateChanged(ItemEvent e)
я не знаю, как получить строку, в которой содержится этот флажок, зная, что источником ItemEvent
является ValueRenderer.
Вы можете мне помочь?
Вот мой код:
Пользовательская 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;
}
}
ItemListener:
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
*/
}
}