从JComboBox中选择JTree节点,反之亦然



我的应用程序中有JTree和JComboBox。当我选择一个节点时,JComboBox 内容也会发生变化,但是在选择 JComboBox 项目的情况下,我需要做同样的事情。

如您所见,如果我选择"默认会话启动",则应在 JTree 中选择相同的节点。有人可以告诉我,什么是好方法。在此处输入图像描述

这只是应用程序框架的一部分。挥杆相当冗长,你需要解决很多问题。您为 JComponents 提供数据模型,并且需要添加侦听器,或者

JComboBox<Thing> comboBox = new JComboBox<>(controller.getComboBoxModel());
JTree tree = new JComboBox<>();
... tree.setSelectionModel(controller.getTreeSelectionModel());
publi class Controller { // or Application
public static void main(String[] args) { ... }
// Model:
private ComboBoxModel<Thing> comboBoxModel;
private TreeSelectionModel treeSelectionModel;
public Controller() {
comboBoxModel = new DefaultComboBoxModel() {
@Override
pubic void setSelectedItem​(Thing item) {
if (!item.equals(getSelectedItem())) {
super.setSelectedItem(itenm);
treeSelectionModel.setSelectionPath(...);
}
}
};
treeSelectionModel = new DefaultTreeSelectionModel ...
...
}

重要的是,对于未更改的项目,没有来回设置所选项目。因此,平等测试。

最新更新