【发布时间】:2013-03-14 06:21:03
【问题描述】:
所以我有三个类,一个是主 GUI,一个是方法类,一个是登录窗口类。
在我的方法类中我有
public int IsLoggedOn = 0;
public int returnLoggedinValue (){
return this.IsLoggedOn ;
}
public int setLoggedOn(){
System.out.println("logged on ");
return 1;
}
在我有按钮的登录窗口动作监听器中
methodWin meth = new methodWin ();
methodWin.IsLoggedOn = methodWin.setLoggedOn();
System.out.println("logged in value "+methodWin.IsLoggedOn);
然后返回主 GUI 以结束我拥有的启动登录窗口的操作侦听器
methodWin meth = new methodWin ();
int ar = meth.IsLoggedOn;
System.out.println("ar is "+ ar);
if (ar==1){
System.out.println("user is logged in");
jTextField1.setEnabled(true);
jButton1.setEnabled(true);
}
我遇到的问题是,如果我从登录窗口打印出 IsLoggedOn 的值,它已正确地将其更改为“1”,但当我检查 IsLoggedOn 的值时,我会返回主 GUI “ 0"
很抱歉这整个 Java 的东西很新,不太清楚为什么没有看到变化
【问题讨论】:
-
首先“坚持Java Coding Convention”。其次,您正在创建 methodWin 类的新实例以获取不起作用的值。
-
@HarryJoy 你是对的。主要问题是这里有两个不同的对象。
-
将 int 声明为静态工作