Это всего лишь часть скелета приложения. Свинг довольно многословен, и многое вам нужно будет отработать. Вы предоставляете модели данных для 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 ...
...
}
Важно то, что для неизменного элемента нет обратной и обратной настройки выбранного элемента. Отсюда и критерий равенства.