Мне нужно включить/отключить некоторые компоненты внутри JFrame. Но я только хочу отключить эти типы:
JTextField
JButton
JComboBox
Есть ли простой пример о том, как это делать в Java?
Прокрутите все компоненты 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);
}
}
}
Ознакомьтесь с Darryl Swing Utils. Вы можете использовать класс для получения списка компонентов определенного класса. Затем вы перебираете список, чтобы выполнить свою обработку.
Ro, чтобы получить все комбинации комбо-блоков, которые вы могли бы использовать:
List<JComboBox> components = SwingUtils.getDescendantsOfType(JComboBox.class, frame.getContentPane(), true);