Text 借助+;按钮

Text 借助+;按钮,text,input,jface,Text,Input,Jface,我是JFACE的新手,正在以以下方式设计多文本输入 复合.setLayout(布局); setLayoutData(新的GridData(GridData.FILL_BOTH)) 它工作得很好 但是,我想知道是否可以使用+按钮添加muli用户输入。 假设一个用户输入了一个名字,然后如果他还有一个名字要添加,他点击+按钮,在下面为他打开另一个文本区域 我在网上找过这个,但没有找到任何结果 欢迎提供任何帮助/意见 干杯 这并不难。。。只需在按钮上放置一个选择侦听器,该侦听器调用一个方法,该方法在父复

我是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返回您正在创建的文本,而不是复合文本。请看一个例子。