从另一种方法访问SWT按钮

时间:2014-04-16 19:07:55

标签: java button user-interface swt

我正在构建一个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。

1 个答案:

答案 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是关于成员变量(字段)的教程。

另请坚持Java naming conventions