-1

我有一个 LoginGUI 和一个 MainGUI,我想做的是在我的 MainGUI 中将当前用户作为字符串或 UserID 作为整数返回。我的程序运行 LoginGUI,然后如果用户名和密码与数据库匹配,它会让您进入 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

添加一个成员,比如说String uid;你的 MainGUI 类,并创建两个构造函数,一个接受String,另一个接受Integer;在他们中,设置uuid为通过的任何内容。现在您将把您的用户 ID 绑定到 MainGUI 以供以后使用。

因此,当您使用完 LoginGUI 后,初始化new MainGUI(passedID).

于 2012-09-17T14:53:13.833 回答
1

你可以在你的MainGUI类中添加一个 setter 方法并像这样调用它:

main.setCurrentUser(currUser);

为了将多个字段传递LoginGUI给您,MainGUI您可以使用包装类,例如

CurrUserDetails details = new CurrUserDetails(userID, userName);
main.setCurrentUserDetails(currUser);
于 2012-09-17T14:54:31.933 回答
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 回答