Так что для этого, JTree
(с его узлами в качестве флажков) правильно
возможность реализовать или я должен использовать
какой-то другой JComponent?
Не совсем уверен, что вы имели в виду, но я лично не стал бы использовать JTree для представления опций справа. Я думаю, что гораздо проще представить JPanel , который содержит опции в данном конкретном случае. Левая сторона кажется хорошей для вашего примера, хотя я действительно не знаю, какие данные попадают в дерево.
Если JTree правильный вариант, то как
могу ли я вспомнить цвета каждого
город
Обратите внимание, я собираюсь сделать пару предположений:
- Левая сторона, содержащая ваши страны и города, остается JTree , а правая сторона может быть JTree или JPanel .
- Вы хотите, чтобы параметры отображались в точности так, как они были заданы пользователем в последний раз, прежде чем они выберут другой узел с левой стороны.
Простейший способ добиться этого - добавить TreeSelectionListener в модель выбора дерева (содержащего страны и города). TreeSelectionListener предоставляется с TreeSelectionEvent , который обеспечивает узел, который был выбран , и узел, который станет выбранным. Это даст вам возможность извлечь настройки цвета, которые были заданы для узла, для которого выбор изменяется с , на тот, для которого выбор меняется на . TreeSelectionListener должен быть добавлен к TreeSelectionModel , полученному из JTree , путем вызова его getSelectionModel метода.
Если вы используете эту технику, при выполнении операции с последними выбранными параметрами вам потребуется получить параметры еще раз, прежде чем выполнять операцию. Например, если у вас была кнопка «Сохранить», вы должны проверить извлекать настройки цвета, для которых узел выбран слева. Это делается для того, чтобы зафиксировать любые изменения, которые пользователь, возможно, сделал, что слушатель не захватил (поскольку слушатель срабатывает только при изменении выбора левой руки).
Если вам нужен пример, я написал один на http://www.box.net/shared/hgbet4uf6k.