Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找到复合材料的最佳方法是什么?_Java_Swt_Composite - Fatal编程技术网

Java 找到复合材料的最佳方法是什么?

Java 找到复合材料的最佳方法是什么?,java,swt,composite,Java,Swt,Composite,我有一个SWT应用程序(Shell),有几个组合: 一个菜单栏在一个组合中,我还有一个包含各种元素的第二个组合 从菜单栏的ActionListener中,我想访问第二个组合的元素之一 目前,我通过这样做找到了我的复合材料。有更好/更简单的方法吗 Control[] appComposites; appComposites = parent.getChildren(); Composite remoteFile; for(int i=0; i<appComposites.length;i++

我有一个SWT应用程序(Shell),有几个组合: 一个菜单栏在一个组合中,我还有一个包含各种元素的第二个组合

从菜单栏的ActionListener中,我想访问第二个组合的元素之一

目前,我通过这样做找到了我的复合材料。有更好/更简单的方法吗

Control[] appComposites;
appComposites = parent.getChildren();
Composite remoteFile;
for(int i=0; i<appComposites.length;i++){
    if(appComposites[i].toString().compareTo("RemoteFile {}") == 0){
        remoteFile = (Composite) appComposites[i];
    }
}
//Now I must make another loop inside remoteFile to find the element that I need ...
Control[]appComposites;
appComposites=parent.getChildren();
复合远程文件;

对于(int i=0;i您可以使用方法
Widget#setData(Object)
Widget
s添加标识信息

以下是一个例子:

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new GridLayout(2, true));

    Listener listener = new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            Widget widget = arg0.widget;

            System.out.println(widget.getData().equals("Button 1");
        }
    };

    for(int i = 0; i < 10; i++)
    {
        Button button = new Button(shell, SWT.PUSH);
        button.setText("Button " + i);
        button.setData("Button " + i);

        button.addListener(SWT.Selection, listener);
    }

    shell.pack();
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

你解决问题了吗?
widget.getData().equals("YOUR IDENTIFIER");