/ / Отримайте всі вибрані прапорці на Java - java, swing, checkbox

Отримайте всі вибрані прапорці в Java - java, swing, прапорець

У мене діалогове вікно на Java, яке представляє ~ 15прапорці користувачеві. Чи є спосіб отримати імена всіх зареєстрованих прапорів відразу? Наразі я шукаю по черзі, якщо вони відібрані, що не є фантазією рішення.

Я шукаю щось подібне Отримання всіх вибраних прапорців у масиві але потім на Java

Відповіді:

8 для відповіді № 1

Коли ви додаєте свої прапорці до своїхДіалогове вікно також зберігає посилання на якусь колекцію. Тоді, коли ви хочете побачити, що вони перевірені, ви можете просто переглянути колекцію та перевірити стан кожної з них. Ви можете отримати ім'я, зателефонувавши на нього getText.


6 для відповіді № 2
List<JCheckBox> checkboxes = new ArrayList<JCheckBox>();
for( Component comp : panel.getComponents() ) {
if( comp instanceof JCheckBox) checkboxes.add( (JCheckBox)comp );
}

Це передбачає, що всі випадки JCheckBox є aпряма дочірня панель контейнера. Якщо ні, то вам потрібно буде рекурсивно відвідувати всі контейнери панелі, використовуючи ту саму логіку. Тепер, хоча ви можете це зробити, зазвичай краще зберегти ці посилання, коли ви створювали їх у список. Тоді ви можете легко перебирати всі прапорці без цього коду вище. Якщо у вас вбудовані компоненти, то краще попросити вбудований компонент виконати будь-яку операцію, яку ви хочете, щоб над ними встановлені прапорці (на відміну від витягування їх із компонента через геттер, щоб ви могли зіпсувати їх якимось чином).