0

我有一个树表,我在上面添加了一个 treeSelectionListener。在一行的一个选择中,函数 valueChanged 被调用 4 次。我设法通过检查getOldLeadSelectionPath()为空来将其控制为 2 倍。

有没有更好的方法将其限制为 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 回答