将文本字段值从swing类发送到另一个类

时间:2015-01-30 22:32:18

标签: java swing

所以,我正在使用swing在java中构建一个登录表单。 当我点击登录按钮时我做了这个测试

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    String username = jTextField1.getText();
    String password = jTextField2.getText();
    if (username.equals("Admin")&&password.equals("Admin")) {
        //Launch admin panel
        AdminGui admin = new AdminGui();
        admin.setVisible(true);
    }
    else {
        //Some code
    }
} 

如果您看到用户名= Admin和passowrd也是Admin AdminGui将启动,但我希望此测试在另一个类上执行。 我怎样才能将这个类的文本字段值发送给另一个?

3 个答案:

答案 0 :(得分:0)

第一个选项是使用构造函数发送它,如:

AnotherClass ac = new AnotherClass (yourInput);

或:

AnotherClass ac = new AnotherClass (yourInput);
ac.setYourInput(yourInput);

答案 1 :(得分:0)

创建另一个名为UserService的类,例如

public class UserService {
    public boolean isValidLogin(String username, String password) {
        return username.equals("Admin") && password.equals("Admin");
    }
}

在您的类中创建一个具有jButton1ActionPerformed方法的实例UserService。例如 请注意,如果您有另一个创建视图的类,则应使用getter / setter方法实际传递此视图。

private UserService userService = new UserService(); 

然后调用jButton1ActionPerformed()方法

if (userService.isValidLogin(username, password)) {

答案 2 :(得分:0)

由于MVC模式,您可以创建一个应该执行的Utility类:

public static class YourUtilityClass{
  public static boolean checkLogin(String username, String password){
    if(username.equals("Admin") && password.equals("Admin")){
      return true;
    }else{
      return false;
    }
}

在你的actionPerformer方法的GUI中你必须做类似的事情:

boolean loginCorrect = YourUtilityClass.checkLogin(username,password);

if(loginCorrect){
  //login was okay and you can load the AdminGui
}else{
  //notCorrect
}