【发布时间】:2015-04-18 18:46:51
【问题描述】:
我有一个文本和一个组合小部件,我有一个组合选择侦听器:
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);
}
}
});
}
}
但在选择侦听器中,我在“text.setEnabled(this);”处得到一个空指针异常 text 和 cobmo 是我的类字段。
请帮帮我
谢谢
【问题讨论】:
-
如果没有将
combo和text声明为final,则无法编译上述代码,如果声明它们,则无法获得NPE。请提供您的代码工作副本的 sn-p 或堆栈跟踪的摘录 -
那些不是最终的,那些是我的班级档案。类 MyCode { 私人组合组合;私有文本文本;
-
是的,我现在也这样做了,但问题是我在 org.eclipse.jface.dialogs.Dialog 类的重写方法“createDialogArea”中有这段代码,所以一旦对话框已加载。当我们单击组合并选择一个即调用侦听器时。我还是不明白你的想法。
-
获得 NullPointerException 的唯一方法是在代码的其他位置将文本设置为
null。您是否有一些过早调用的清理程序? -
我有一份你的程序的工作副本,它完全符合你的期望,pastebin.com/1HeNNQ5H,你最后的代码应该有问题。
标签: java eclipse eclipse-plugin swt jface