使用另一个类的登录类

时间:2013-05-13 20:54:51

标签: java netbeans

我创建登录表单,当按下按钮时,我希望将输入的名称传递给另一个类。

private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         

    get_name = this.nameField.getText();
    get_pass = this.passwordField.getText();

}

在另一个类中打印null,

public static void main(String[] args) {
    LoginFrame logframe = new LoginFrame();
    System.out.println(logframe.get_name);
}

2 个答案:

答案 0 :(得分:1)

main()设置值之前调用get_name方法,这就是您获得null的原因。如果您调试应用程序(或只是移动print),get_name被调用后null的机会将不会okButtonActionPerformed()

使用公共变量也不是一个好习惯,您应该将它们设置为私有,并使用getterssetters来访问它们。 Here列出了这样做的充分理由。

答案 1 :(得分:0)

action 侦听器在运行时采取动作,但静态变量和方法将在编译时获取其值,因此您可以定义 textfield(s)到一些默认值。
见这个例子:

private static int a ;
public static void test(){
 a = 3;
System.out.println(a);
a=5; 
System.out.println(a);
}

您可能猜测输出将是(3然后是5),但实际上它不正确静态变量将采用激光值,因此输出将为

  

5
  5个

这就是为什么他们创建动态,因为它的值会在运行时改变,就像你的okButtonActionPerformed在编译后获得文本字段的值(在运行时),但是在编译时它被设置为{{1}所以输出将是

  

您可能在访问某些类字段时遇到问题,请参阅此示例:

null

另请参阅this tutorialthis 也是StackOverFlow回答的好文章。