Java 基于组合选择启用/禁用SWT文本

Java 基于组合选择启用/禁用SWT文本,java,eclipse,eclipse-plugin,swt,jface,Java,Eclipse,Eclipse Plugin,Swt,Jface,我有一个文本和组合小部件,我有一个组合的选择侦听器: class MyDialog extends org.eclipse.jface.dialogs.Dialog { private Text text; private Combo combo; public void createDialogArea(Composite parent) { text = new Text(composite, SWT.BORDER); combo = new Combo

我有一个文本和组合小部件,我有一个组合的选择侦听器:

class MyDialog extends org.eclipse.jface.dialogs.Dialog
{
    private Text text;
    private Combo combo; 

public void createDialogArea(Composite parent)
{
    text = new Text(composite, SWT.BORDER);

    combo = new Combo(composite, SWT.NONE);

    combo.add("One");
    combo.add("Two");
    combo.add("Three");
    combo.addSelectionListener(new SelectionAdapter()
    {
        public void widgetSelected(SelectionEvent e)
        {
            if(combo.getText().equals("One");
            {
                text.setEnabled(false);
            }
        } 
    });
}
}
但在selection listener中,我在“text.setEnabled(this);”处得到一个空指针异常 text和cobmo是我的类字段

请帮我做这个


谢谢

您说您在
text.setEnabled(此)处收到一个空指针异常,但语句
text.setEnabled(此)不会出现在您发布的代码中。仅,
text.setEnabled(false)显示在您发布的代码中。因此,要么错误在别处,要么你的帖子可能需要修改。

如果不将
combo
text
声明为最终版本,你就无法编译上述代码,如果你这样声明,那么你就无法获得NPE。请提供代码的工作副本片段或StackTraceThodse的摘录,这些不是最终版本,它们是我的类文件。类MyCode{private Combo Combo;private Text Text;是的,我现在也这么做了,但问题是我在重写的方法“createDialogArea”中有这段代码当我们点击combo并选择一个时,监听器就会被调用。我仍然不明白你的想法。你得到NullPointerException的唯一方法是在代码的其他地方将文本设置为
null
。你有什么清晰的方法吗n-up例程调用过早?我有一份您的程序的工作副本,它按照您的期望完美地工作,您的代码中应该有一些错误。