Java 如何在Eclipse RCP应用程序中使用用户输入?

Java 如何在Eclipse RCP应用程序中使用用户输入?,java,eclipse-plugin,swt,eclipse-rcp,jface,Java,Eclipse Plugin,Swt,Eclipse Rcp,Jface,以下是我正在开发的Eclipse RCP应用程序的摘录: Description:在类containerselection对话框中的方法createContents(Composite)中,我正在调用MyComposite中的createComposite(Composite),它继承自抽象类AbstractCompositeProxy: TabFolder folder = new TabFolder((Composite) dialogArea, SWT.TOP); Composite c

以下是我正在开发的Eclipse RCP应用程序的摘录:

Description:在类
containerselection对话框中的方法
createContents(Composite)
中,我正在调用
MyComposite
中的
createComposite(Composite)
,它继承自抽象类
AbstractCompositeProxy

TabFolder folder = new TabFolder((Composite) dialogArea, SWT.TOP);
Composite comp = (Composite) super.createDialogArea(folder);
TabItem tab = new TabItem(folder, SWT.NONE);
tab.setText("Header");
tab.setControl(compositeProxy
        .createComposite(comp));
createComposite(Composite)
中,我正在创建SWT小部件,比如
org.eclipse.SWT.widgets.Text
org.eclipse.SWT.widgets.Combo
等等。例如:

Label label = new Label(parentComposite, SWT.NONE);
label.setText("Something");

Text text = new Text(parentComposite, SWT.BORDER);
GridData gridData = new GridData();
gridData.horizontalAlignment = SWT.FILL;
gridData.grabExcessHorizontalSpace = true;
text.setLayoutData(gridData);
因此,在我的EclipseRCP应用程序中,用户可以打开一个带有已定义的小部件元素的对话框,在那里他可以输入数据。在
okPressed()
中,在类
containerselection对话框中
我想读取值,用户使用
getSettings()
MyComposite
输入:

@Override
protected void okPressed() {
    List<Object> results = new ArrayList<>();
    results.add(abstractCompositeProxy.getSimulationSettings());
    setResult(results);
    super.okPressed();
}
@覆盖
受保护的空文件(){
列表结果=新建ArrayList();
添加(abstractCompositeProxy.getSimulationSettings());
setResult(results);
super.okPressed();
}
这不是我的设计决定。我只是想了解以下内容:如何在
okPressed()
中使用
getSettings()
方法来获取值


希望这是足够的信息,否则我会在评论中提供更多信息。我将感谢任何帮助

okPressed()
访问
compositeProxy
的方式与在
createContents()
中访问
compositeProxy
的方式相同,与在
createContents()
中访问
okPressed()
的方式相同,在对象上调用方法(getSimulationSettings)到底有什么问题(abstractCompositeProxy)?方法签名看起来很奇怪,但对您来说可能没问题。我希望getSimulationSettings返回设置实例列表,这可能会导致在结果上调用“addAll”,而不是add。在对象(abstractCompositeProxy)上调用方法(getSimulationSettings)到底有什么问题?方法签名看起来很奇怪,但对您来说可能没问题。我希望getSimulationSettings返回一个设置实例列表,这可能会导致在结果上调用“addAll”,而不是add。