0

我是 JFACE 的新手,正在以下列方式设计多文本输入。

复合.setLayout(布局);复合.setLayoutData(新GridData(GridData.FILL_BOTH));

    Label text1=new Label(composite,SWT.NONE);
    text1.setText("Provide The names");
    text1.setForeground(darkmagenta);
    text1.setFont(boldFont);
    noOfTables= new Text(composite, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL );

    noOfTables.setLayoutData(new GridData(GridData.FILL_BOTH));

它工作正常。

但是我想知道我是否可以使用 + 按钮添加 muli 用户输入。假设用户输入了一个名字,然后如果他还有一个名字要添加,他点击 + 按钮并在下面为他打开另一个文本区域。

我在网上找了这个,没有想出任何东西

欢迎任何帮助/评论。

干杯,

4

1 回答 1

0

这并不难......只需在您的按钮上放置一个选择侦听器,该侦听器调用一个方法,该方法在您的父 Composite 中创建一个新的 Composite,并在添加新容器后打包最外面的容器(Shell)。

你的按钮监听器看起来像这样:

public void widgetSelected(SelectionEvent e) {
    displays.add(createArea(c));
    shell.pack();
}

createArea 方法看起来像这样:

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;
}
于 2013-06-20T15:06:55.920 回答