0

そのため、3 つのクラスがあります。1 つはメイン 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 のことはまったく初めてで、変更が見られない理由がよくわかりません

4

3 に答える 3

1

これを試すことができます:

 public class MethodWin{
     private int isLoggedOn=0;
     private static MethodWin objectMethodWin = new MethodWin();
     private MethodWin(){}
     public static MethodWin getInstance(){
         return objectMethodWin;
     }
     public void setIsLoggedOn(int value){
         this.isLoggedOn=value;
     }
     public int getIsLoggedOn(){
         return this.isLoggedOn;
     }
 }

ログインウィンドウのアクションで:

 MethodWin meth = MethodWin.getInstance();
 meth.setIsLoggedOn(1);
 System.out.println("logged in value "+ meth.getIsLoggedOn);

メイン GUI で:

 MethodWin meth = MethodWin.getInstance();
 int ar = meth.getIsLoggedOn();
 System.out.println("ar is "+ ar);
 if (ar==1){
     System.out.println("user is logged in");
     jTextField1.setEnabled(true);
     jButton1.setEnabled(true);
 }
于 2013-03-14T07:57:08.050 に答える
0
  methodWin.IsLoggedOn = methodWin.setLoggedOn();

ログでは、IsLoggedOn の値を 1 に設定しています。しかし、メインGUIではそれをしていません。

IsLoggedOn を static として宣言する

 public static int IsLoggedOn = 0;

これが役立つことを願っています

于 2013-03-14T06:28:56.673 に答える