-1

LoginGUI と MainGUI があります。現在のユーザーを String として返すか、UserID を MainGUI の Integer として返します。私のプログラムはLoginGUIを実行し、UserNameとパスワードがデータベースと一致すると、MainGUIにアクセスできます。LoginGUI で CurrUserID と CurrUser を宣言しました。どちらもパブリックですが、MainGUI でそれらを使用するにはどうすればよいですか?

これが私のLoginGUIのコードです - 私はswingを使用しています。

    private void loginButActionPerformed(java.awt.event.ActionEvent evt) {                                         
    for (int i = 0; i <= size; i++) {
        if (login.getText().equals(users[i].getUser())) {
            currUser = users[i].getUserID();
            if (password.getText().equals(users[i].getPassword())) {
                try {
                    MainGUI main = new MainGUI(users);
                    main.setVisible(true);
                    this.dispose();
                } catch (SQLException ex) {
                    Logger.getLogger(LoginGUI.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            else{
                JOptionPane.showMessageDialog(null, "Incorrect Password");
            }
        }
        else{
            JOptionPane.showMessageDialog(null, "Incorrect UserName");
        }
    }
}                                        

public int getCurrUser() {
    return currUser;
}

私がやりたいことは、MainGUI にいる間に currUser を返すことです。どうやって?

4

3 に答える 3

1

クラスにセッターメソッドを追加して、次のMainGUIように呼び出すことができます。

main.setCurrentUser(currUser);

LoginGUI複数のフィールドを からに渡すにMainGUIは、ラッパー クラスを使用できます。

CurrUserDetails details = new CurrUserDetails(userID, userName);
main.setCurrentUserDetails(currUser);
于 2012-09-17T14:54:31.933 に答える
1

String uid;たとえば MainGUI クラスにメンバーを追加し、 2 つのコンストラクターを作成します。1 つは受け入れString、もう 1 つは受け入れIntegerます。uuidそれらでは、渡されたものに設定します。これで、後で使用できるようにユーザー ID が MainGUI に関連付けられます。

したがって、LoginGUI を使い終わったら、new MainGUI(passedID).

于 2012-09-17T14:53:13.833 に答える
0

クラスの非静的メソッドを呼び出すには、クラスのインスタンスが必要です。

public class Foo{
    public void bar(){
        // do stuff
    }
}

Foo f = new Foo();
f.bar(); // invoking non-static method of class Foo
于 2012-09-17T14:54:48.497 に答える