0
我在对话框中有一个组合和一个文本小部件。当对话框最初加载时,我只想要组合选项存在,但基于组合选择,我希望显示文本。如何根据组合选择动态创建SWT文本
下面是代码:
public class NewDialog extends Dialog
{
private Label label1;
private Combo combo;
private Label label2;
private Text text;
private Composite container;
public NewDialog(Shell parentShell) {
super(parentShell);
}
@Override
protected Control createDialogArea(Composite parent)
{
container = (Composite) super.createDialogArea(parent);
GridLayout gridLayout = (GridLayout) container.getLayout();
gridLayout.numColumns = 3;
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
label1 = new Label(container, SWT.NONE);
label1.setText("Class");
combo = new Combo(container, SWT.NONE);
GridData gd_combo = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
gd_combo.widthHint = 165;
combo.setLayoutData(gd_combo);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
new Label(container, SWT.NONE);
combo.add("One");
combo.add("Two");
combo.add("Three");
combo.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
if(combo.getText().equals("One"))
{
label2 = new Label(container, SWT.NONE);
label2.setText("Name");
text = new Text(container, SWT.BORDER);
GridData gd_text = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
gd_text.widthHint = 239;
text.setLayoutData(gd_text);
}
}
});
return container;
}
我不是让基于组合选择对话框中显示的文本。
请让我知道我去错了
尝试梳#getSelectionIndex(),但然后也许一个组合不是正确的控制? – nitind
@ kk331317您对答案有何反馈? – Baz