Получить все выбранные флажки в Java - PullRequest
5 голосов
/ 19 января 2012

У меня есть диалог на Java, который представляет ~ 15 флажков для пользователя.Есть ли способ получить имена всех отмеченных флажков одновременно?В настоящее время я ищу один за другим, если они выбраны, что не так уж сложно для решения.

Я ищу что-то похожее на Получение всех выбранных флажков в массиве но потом в Java

Ответы [ 2 ]

8 голосов
/ 19 января 2012

Когда вы добавляете свои флажки в диалог, также сохраняйте ссылку в какой-либо коллекции.Затем, когда вы хотите увидеть, какие из них проверены, вы можете просто выполнить итерацию по коллекции и проверить состояние каждого из них.Вы можете получить имя, вызвав на нем getText.

7 голосов
/ 19 января 2012
List<JCheckBox> checkboxes = new ArrayList<JCheckBox>();
for( Component comp : panel.getComponents() ) {
   if( comp instanceof JCheckBox) checkboxes.add( (JCheckBox)comp );
}

Предполагается, что все экземпляры JCheckBox являются прямым потомком панели контейнера. Если нет, то вам нужно рекурсивно посещать все контейнеры панели, используя ту же логику. Теперь, когда вы можете сделать это, обычно лучше сохранить эти ссылки, как вы создали их в список. Затем вы можете легко перебрать все флажки без необходимости делать этот код выше. Если у вас есть встроенные компоненты, лучше попросить встроенный компонент выполнить любую операцию, которую вы хотите, над флажками, которыми он владеет (вместо того, чтобы вытаскивать их из компонента через метод получения, чтобы вы могли каким-то образом испортить их).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...