Java Swing:启用/禁用特定类型的组件

时间:2014-03-13 14:52:17

标签: java forms swing

我需要启用/禁用JFrame中的一些组件。但我只想禁用这些类型:

JTextField
JButton
JComboBox

有没有关于在java中做这类事情的简单例子?

2 个答案:

答案 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);