我需要启用/禁用JFrame中的一些组件。但我只想禁用这些类型:
JTextField
JButton
JComboBox
有没有关于在java中做这类事情的简单例子?
答案 0 :(得分:3)
循环遍历JFrame的所有组件,包括其他组件内的组件,并执行instanceof检查以查看它是否是您要禁用的类型之一,如果是,请禁用该组件。
作为如何执行此操作的示例,可以使用以下函数启用或禁用所有JButton:
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);
}
}
}
答案 1 :(得分:1)
查看Darryl的Swing Utils。您可以使用该类获取特定类的组件列表。然后,您遍历列表进行处理。
Ro示例来获取你可以使用的组合框组件:
List<JComboBox> components = SwingUtils.getDescendantsOfType(JComboBox.class, frame.getContentPane(), true);