我有一个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。我怎么能够?
答案 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