我正在构建一个GUI,并希望访问从另一个方法在构造函数中初始化的SWT按钮。那可能吗?
public class MaskeSection {
final org.eclipse.swt.widgets.Group PRBS_EXT;
Button PRBS;
public MaskeSection(Group Part1){
PRBS_EXT = new org.eclipse.swt.widgets.Group(Part1, SWT.NONE);
final org.eclipse.swt.widgets.Button PRBS = new org.eclipse.swt.widgets.Button(PRBS_EXT, SWT.RADIO);
PRBS.setEnabled(false);
}
public void setPRBS(){
PRBS.setSelection(true);
}
当我想调用setPRBS()时,它会给我Null Pointer Exception,因为我认为PRBS = Null,但是已经在构造函数中分配了PBS。
答案 0 :(得分:0)
您正在定义一个与构造函数中的字段同名的局部变量。所以你基本上shadowing the field variable仍然没有初始化。
这就是你如何解决它:
public class MaskeSection {
private Group myGroup;
private Button myButton;
public MaskeSection(Group part) {
myGroup = new Group(part, SWT.NONE);
myButton = new Button(myGroup, SWT.RADIO);
myButton.setEnabled(false);
}
public void setPRBS(boolean selected) {
myButton.setSelection(selected);
}
}
您应该阅读Java基础知识。 Here是关于成员变量(字段)的教程。