从复合中获取特定控件类型的所有控件

时间:2012-01-06 14:16:26

标签: java

如何从swt页面内的单个复合中获取特定的控件类型(例如所有按钮)?

此致 嗯...

2 个答案:

答案 0 :(得分:2)

您可以使用getComponents并使用如here所示的instanceOf关键字。

Component[] components = this.getComponents();
List<Component> buttons = new ArrayList<Component>();

for (Component component : components)
{
    if (component instanceof JButton)
    {
        buttons.add(component);
    }
}

答案 1 :(得分:0)

在构建时将它们添加到集合中,或者在顶级容器上使用getComponents来获取UI中的所有组件。然后提供像getAllButtons()这样的访问器方法,为方便起见,它们按类型提供一个控件集合的引用。

根据您的需要,您可能会遇到以下方法列表

getAllButtons()        // returns an array, LinkedList, or other collection of all Buttons
addButton(Button)      // adds a specific, new Button to the global list of Buttons
removeButton(Button)   // removes a specific, existing Button from the global list
removeAllButtons()     // clears the global list of Buttons

重复您需要支持的任何组件/控件类型。