JTableのカスタムTableCellRenderer
(ValueRenderer)があり、セルはCheckbox
です。
この例ItemListener
で説明したように、チェックボックスの状態の変化(選択/選択解除)をリッスンするために、valueRendererにをアタッチしました。
私の問題は、ソースがValueRendereritemStateChanged(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;
}
}
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
*/
}
}