如何从java中的另一个类调用String或任何数据类型

时间:2012-09-17 14:45:40

标签: java swing class

我有一个LoginGUI和一个MainGUI,我想要做的是在MainGUI中将当前用户作为String或UserID作为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。我怎么能够?

3 个答案:

答案 0 :(得分:1)

添加一个成员,说String uid;到您的MainGUI类,并创建两个构造函数,一个接受String,另一个接受Integer;在'em中,将uuid设置为传递的内容。现在,您将把您的用户ID绑定到MainGUI以供以后使用。

因此,当您完成LoginGUI后,请初始化new MainGUI(passedID)

答案 1 :(得分:1)

您可以在MainGUI类中添加setter方法,并将其调用为:

main.setCurrentUser(currUser);

要将多个字段从LoginGUI传递到MainGUI,您可以使用包装类,例如。

CurrUserDetails details = new CurrUserDetails(userID, userName);
main.setCurrentUserDetails(currUser);

答案 2 :(得分:0)

为了调用类的任何非静态方法,您需要该类的实例,例如

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

Foo f = new Foo();
f.bar(); // invoking non-static method of class Foo