Java Swing: включение / отключение компонентов определенного типа

1

Мне нужно включить/отключить некоторые компоненты внутри JFrame. Но я только хочу отключить эти типы:

JTextField
JButton
JComboBox

Есть ли простой пример о том, как это делать в Java?

Теги:
forms
swing

2 ответа

3
Лучший ответ

Прокрутите все компоненты JFrame, включая компоненты внутри других компонентов, и выполните проверку экземпляра, чтобы убедиться, что это один из типов, которые вы хотите отключить, если это так, отключите компонент.

В качестве примера того, как это сделать, можно включить или отключить все JButtons со следующей функцией:

public void flipEnabledOnAllButtons(boolean enabled, Container rootContainerToSearch)
{    
    for (Component c : rootContainerToSearch.getComponents())    
    {    
        if (c instanceof Container)    
        {    
            flipEnabledOnAllButtons(enabled, (Container)c);    
        }    

        if (c instanceof JButton)    
        {    
            c.setEnabled(enabled);    
        }      
    }
}
  • 0
    Не могли бы вы привести небольшой пример? Я не знаю, как получить тип компонента.
  • 1
    Конечно, пример для отключения / включения всех JButtons: public void flipEnabledOnAllButtons (логическое значение включено, контейнер rootContainerToSearch) {для (Компонент c: rootContainerToSearch.getComponents ()) {if (c instanceof Container) {disableAllButtons (Container c); } else {if (c instanceof JButton) {c.setEnabled (включено); }}}}
Показать ещё 8 комментариев
1

Ознакомьтесь с Darryl Swing Utils. Вы можете использовать класс для получения списка компонентов определенного класса. Затем вы перебираете список, чтобы выполнить свою обработку.

Ro, чтобы получить все комбинации комбо-блоков, которые вы могли бы использовать:

List<JComboBox> components = SwingUtils.getDescendantsOfType(JComboBox.class, frame.getContentPane(), true);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню