2017-01-18 2 views
0

Я хочу, чтобы получить имя пользователя и пароль в View класса но от контроллера классаКак получить данные из представления класса в классе контроллера

Как я могу использовать метод loginbtnMouseClicked, вызвав его из класса контроллера, чтобы получить данные

private void loginbtnMouseClicked(java.awt.event.MouseEvent evt) { 

    //what should i have here?     

} 

View Class Code

usernamefield = new javax.swing.JTextField(); 
passfield = new javax.swing.JPasswordField(); 
loginbtn = new javax.swing.JLabel(); //Login Button is JLabel 

private void loginbtnMouseClicked(java.awt.event.MouseEvent evt) { 

    //what should i have here?     

}     


/* 
    *returns the username from the username field 
*/ 
public String getUserName(){ 
    return usernamefield.getText(); 
} 



/* 
    *returns the password from the password field 
*/ 
public char[] getPass(){ 
    return passfield.getPassword(); 
} 

Код класса контроллера

This is what am asking.......... 

Код Модель Класс

только имеет один метод, который возвращает истину, если имя пользователя и пароль ОБА Admin

public Boolean isAccountHolder(String username, char[] password){ 
    return username.equalsIgnoreCase("admin") && password.equals("admin"); 
} 
+0

Просто потому, что вы используете MVC, не подразумевается, что существуют три четко определенных класса «Вид», «Контроллер» и «Модель». –

ответ

1

Во-первых, не знаю, почему «loginbtn» был бы JLabel ...

В вашем коде просмотра у вас в идеале есть ActionListener, который определяет метод click. Вы не декларируют свой собственный ...

(пример кода)

class MyView extends JPanel { 
    JTextField usernamefield = new javax.swing.JTextField(); 
    JPasswordField passfield = new javax.swing.JPasswordField(); 

    Model model = new Model(); 

    public MyView() { 
     // Here you update the View 
     add(usernamefield); 
     add(passfield); 
     JButton button = new JButton("Click"); 
     add(button); 

     // Here the Panel acts as the controller, and updates the model 
     button.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       model.setName(getUserName()); 
       model.setPass(getPass()); 
      } 
     }); 
    } 

    public String getUserName(){ 
     return usernamefield.getText(); 
    } 

    public char[] getPass(){ 
     return passfield.getPassword(); 
    } 
} 

Кроме того, к сведению: password.equals("admin") не будет работать для char[], поскольку массив не равен строку. Вы должны использовать new String(password).equals("admin"), но если вы используете текстовые пароли, это совершенно отдельная проблема.

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