2015-07-29 2 views
0

Это простой обработчик входа, у меня никогда не возникает таких проблем при размещении на одном классе. то я пытаюсь поместить его на класс ребенка, и я не знаю, что происходит. это 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_Login на F_Process

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 с правом пользователя передать его работу, но когда пользователь положил его нет. я знаю что-то не так с моей логикой ООП, но я не понимаю, где. спасибо

это изображение, чтобы вы поняли, что я имею в виду

http://i.stack.imgur.com/1DsrF.png http://i.stack.imgur.com/uXmGZ.png

ответ

1

Может быть, его, потому что GUIController не имеет доступа к такой же jPasswordFieldPasswordLoginPane, что другой графический интерфейс доступа, чтобы сделать это, вы должен передать объект классу GUIController, например передать ссылку в методе конструктора или сеттера, а в GUIController вы получите доступ к правильному jPasswordFieldPasswordLoginPane.

Смежные вопросы