gpt4 book ai didi

java - OOP 继承,父级变量值未在子级上更新

转载 作者:行者123 更新时间:2023-12-01 11:17:07 27 4
gpt4 key购买 nike

这是简单的登录处理程序,当我把它放在同一个类上时,我从来没有遇到过这样的问题。然后我尝试把它放在 child 类,但我不知道发生了什么。这是 GUI 类

        final static Functions.F_Koneksi F_K = new Functions.F_Koneksi();
final static Functions.F_Process F_P = new Functions.F_Process();
final static GUIController F_GUI = new GUIController();
protected javax.swing.JPasswordField jPasswordFieldPasswordLoginPane;
protected javax.swing.JTextField jTextFieldUsernameLoginPane;

...

private void jButtonLoginLoginPaneActionPerformed(java.awt.event.ActionEvent evt) {
switch (F_GUI.DoLogin()) {
case 1:
cl.show(MainPane, "BuyMovie");
break;
...
default:
LoginLabel.setText("username or password ... ");
}
}

这是 GUIController 类

 int DoLogin(){
try {
System.err.println(jTextFieldUsernameLoginPane.getText());
char[] PassChars = jPasswordFieldPasswordLoginPane.getPassword();
String Pass = new String(PassChars);
return F_P.F_Login(jTextFieldUsernameLoginPane.getText(), Pass);
} catch (SQLException ex) {
LoginLabel.setText("connection error");
}
return 3;
}

这是 F_Process 上的 F_Login 方法

public int F_Login(String User, String Pass) throws SQLException {
ResultSet RS = Select("select * from blablabla"); //this query work already
int level = 8;
if (RS.next()) {
level = RS.getInt("Level");
}

return level;
}

问题是当我设置用户和密码textfield时,正确的用户传递了它的工作,但当用户输入它时却没有。我知道我的 OOP 逻辑有问题,但我不明白哪里有问题。谢谢你

这张图是为了让你明白我的意思

/image/1DsrF.png /image/uXmGZ.png

最佳答案

也许是因为 GUIController 无法访问其他 gui 访问的相同 jPasswordFieldPasswordLoginPane,为此,您必须将对象传递给 GUIController 类,例如在构造函数或 setter 方法中传递引用,并在 GUIController 中访问正确的 jPasswordFieldPasswordLoginPane

关于java - OOP 继承,父级变量值未在子级上更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com