Text 借助+;按钮
我是JFACE的新手,正在以以下方式设计多文本输入 复合.setLayout(布局); setLayoutData(新的GridData(GridData.FILL_BOTH)) 它工作得很好 但是,我想知道是否可以使用+按钮添加muli用户输入。 假设一个用户输入了一个名字,然后如果他还有一个名字要添加,他点击+按钮,在下面为他打开另一个文本区域 我在网上找过这个,但没有找到任何结果 欢迎提供任何帮助/意见 干杯Text 借助+;按钮,text,input,jface,Text,Input,Jface,我是JFACE的新手,正在以以下方式设计多文本输入 复合.setLayout(布局); setLayoutData(新的GridData(GridData.FILL_BOTH)) 它工作得很好 但是,我想知道是否可以使用+按钮添加muli用户输入。 假设一个用户输入了一个名字,然后如果他还有一个名字要添加,他点击+按钮,在下面为他打开另一个文本区域 我在网上找过这个,但没有找到任何结果 欢迎提供任何帮助/意见 干杯 这并不难。。。只需在按钮上放置一个选择侦听器,该侦听器调用一个方法,该方法在父复
这并不难。。。只需在按钮上放置一个选择侦听器,该侦听器调用一个方法,该方法在父复合内创建一个新复合,并在添加新容器后打包最外层的容器(Shell) 您的按钮侦听器将如下所示:
public void widgetSelected(SelectionEvent e) {
displays.add(createArea(c));
shell.pack();
}
private Composite createArea(Composite c) {
Composite inner = new Composite(c, SWT.NONE);
inner.setLayout(new GridLayout(2, false));
inner.setLayoutData(new GridData(GridData.FILL, GridData.END, true, false));
GridData gd = new GridData(SWT.FILL, SWT.FILL, true,true);
Label l = new Label(inner, SWT.NONE);
l.setText("Label #" + lCount++);
l.setLayoutData(gd);
Text t = new Text(inner, SWT.NONE);
t.setLayoutData(gd);
return inner;
}
createArea方法的外观如下所示:
public void widgetSelected(SelectionEvent e) {
displays.add(createArea(c));
shell.pack();
}
private Composite createArea(Composite c) {
Composite inner = new Composite(c, SWT.NONE);
inner.setLayout(new GridLayout(2, false));
inner.setLayoutData(new GridData(GridData.FILL, GridData.END, true, false));
GridData gd = new GridData(SWT.FILL, SWT.FILL, true,true);
Label l = new Label(inner, SWT.NONE);
l.setText("Label #" + lCount++);
l.setLayoutData(gd);
Text t = new Text(inner, SWT.NONE);
t.setLayoutData(gd);
return inner;
}
你好,大卫,谢谢你的帮助。但是,当我添加displays.add(createArea(c));在我的按钮侦听器中,它无法解析displays.add。我是新手,所以不介意我问添加是内置函数吗?任何输入都是很好的。displays变量只是一个列表对象,我将它添加到其中。事后看来,最好让createArea返回您正在创建的文本,而不是复合文本。请看一个例子。