0

ツリー テーブルがあり、それに treeSelectionListener を追加しています。行の 1 つの選択で、関数 valueChanged が 4 回呼び出されます。nullにチェックすることで、なんとか2回に制御できましたgetOldLeadSelectionPath()

1に制限するより良い方法はありますか?

treeTable.getTree().addTreeSelectionListener(new TreeSelectionListener() {
    @Override
    public void valueChanged(TreeSelectionEvent e) {
        if (e.getOldLeadSelectionPath() == null) {
            int row = treeTable.getTable().getSelectedRow();
            String colGid = treeTable.getTable().getModel().getValueAt(row, 1).toString();
            if (treeTable.getTree().getSelectionPath().getPathCount() == 3) {
                KPropertyTable columnProperty = createColumnProperty(colGid);
                propertyPanel.removeAll();
                propertyPanel.add(columnProperty, BorderLayout.CENTER);
                propertyPanel.updateUI();
            } else {
                propertyPanel.removeAll();
                propertyPanel.add(new JLabel("Select a column", SwingConstants.CENTER));
              }
        }
    }
});        
4

1 に答える 1

-1

これがばかげていることはわかっていますが、valueChanged が呼び出されるたびに発生するグローバル変数を作成することで、これを克服することができました。その後、次のようなことができます。

global_variable += 1;

if (global_variable % 4 == 0){
    //your code here
}
于 2015-03-13T12:27:37.917 に答える