这是简单的登录处理程序,当把它放在同一个类上时,我从来没有这样的问题。然后我试着把它放在儿童班上,我不知道发生了什么。 这是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逻辑有问题,但我不明白在哪里。谢谢
这是让你理解我的意思的图片
http://i.stack.imgur.com/1DsrF.png http://i.stack.imgur.com/uXmGZ.png
答案 0 :(得分:1)
也许是因为GUIController
没有访问其他gui访问的jPasswordFieldPasswordLoginPane
,要做到这一点,你必须将对象传递给GUIController
类,就像在构造函数或setter方法中传递引用,并在GUIController
中访问正确的jPasswordFieldPasswordLoginPane
。