有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将变量从一个类发送到另一个类

我有一个Jframe类,它有一个登录名和密码字段。当登录时,我必须显示登录者的信息,因此我必须从第一个Jframe检索他的登录,以便在另一个Jframe中进行处理。 这是我做的,但是登录在第二个jframe中返回NULL: 第一个Jframe(登录和密码字段):

private void button_connectActionPerformed(java.awt.event.ActionEvent evt) {                                               
    // TODO add your handling code here:
    String x= loginField.getText();
    String y= passwordField.getText();
    AuthentificationDAO authDAO= new AuthentificationDAO();
    boolean ok_login= authDAO.verify_login(x);
    int pass= Integer.parseInt(y);
    System.out.println("password retrieved"+pass);
    boolean ok_pass=authDAO.verify_password(pass);
    System.out.println("ok pass"+ok_pass);
    if (ok_login & ok_pass)
    {
        System.out.println("Login found!");
        Enseignant e= new Enseignant();
      edu.app.persistence.Enseignant ens= new edu.app.persistence.Enseignant(x);
      //ens.setLogin(x);
        System.out.println("login SET:"+ens.getLogin());
        e.setVisible(true);
        this.setVisible(false);


    }
    else {
        System.out.println("Login NOT found!");
        JOptionPane.showMessageDialog(null, "Accourt NOT found. Please check your login or password.", "Check Login/Pass", 1);
    }

第二个Jframe将显示该登录的信息:

私有void mauvaisfieldfocusgeed(java.awt.event.FocusEvent evt){

edu.app.persistence.Enseignant ens= new edu.app.persistence.Enseignant();
String login=ens.getLogin();
System.out.println("LOGIN EST:"+login);
StatsDAO stats= new StatsDAO();
int id=stats.get_id_from_login(login);
System.out.println("ID="+id);

}

你知道如何解决那个问题吗? 多谢各位


共 (1) 个答案

  1. # 1 楼答案

    除非ens.loginstatic,否则此代码将无法工作

    您可以使用MVC模式,也可以使第二个框架类扩展JFrame,以便向其添加登录字段

    例如:

        class1 {
            class2 frame2 = new class2();
            void login(){
                String x = loginField.getText();
                edu.app.persist.teach ens= new edu.app.persist.teach(x);
                class2.setLogin(x);
            }
       }
    
       class2 extends JFrame{
           String login;
           String getLogin(){..}
           void setLogin(String s){..}
           .
           .
       }
    

    我使用了一种伪代码,但应该足够清楚