JTableのカスタムTableCellRenderer
(ValueRenderer)があり、セルはCheckbox
です。itemStateChangedのTableCellRendererの行を取得します
私はこのexampleで述べたように、チェックボックスの状態変化(選択解除/選択)を聞くことがvalueRendererにItemListener
を添付しています。
私の問題はitemStateChanged(ItemEvent e)
の中に、ItemEvent
のソースがValueRendererであることを知っているこのチェックボックスが含まれている行を取得する方法がわかりません。
私を助けることができますか?あなたは、テーブル内のとき、いくつかの値の変化を知りたい場合は、
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
*/
}
}
?この例を再度読んだら、itemstateのリスニングはレンダラーではなくエディターで行われますが、そこには行の列もありません。 JTableは、編集を中止する場合に必要な行と列のマッピングを処理します。 – Peter
レンダラは何もしない、完全に受動的な奴隷ですが、塗料メカニズムは、それが適切と判断たびに、いくつかの実成分に自分renderingComponentを刻印します。彼らにリスナーを登録しないでください。彼らの通知は意味をなさないのです。 – kleopatra
@kleopatraそれは私によってではなく、博士によって行われました。 [例](https://sites.google.com/site/drjohnbmatthews/table)。だから私は彼のコードを取って、私のニーズにそれを修正しようとしました –