У меня есть таблица дерева, и я добавляю в нее treeSelectionListener. При одном выборе строки функция valueChanged получает вызов 4 раза. Мне удалось довести его до двух раз, установив getOldLeadSelectionPath()
на null.valueChanged() вызывается несколько раз в TreeSelectionListener
Есть ли лучший способ ограничить его 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));
}
}
}
});
все между String colGid и SwingConstants.CENTER)); это неправильная концепция, цель, что вы хотите сделать, идеи, причины – mKorbel
Итак, какую часть кода вы хотите, чтобы я вставлял? @mKorbel –