OOP 继承,parents 变量值未在 child 上更新

OOP inheritence, parents variable value not updated on child

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

        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 class

 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

可能是因为 GUIController 访问的 jPasswordFieldPasswordLoginPane 与其他 gui 访问的不同,要做到这一点,您必须将对象传递给 GUIController class,比如在构造函数或 setter 方法中传递引用,然后在 GUIController 中访问正确的 jPasswordFieldPasswordLoginPane.