在Java类的帮助下,尝试将数据从一个jFrame传输到另一个jFrame

在Java类的帮助下,尝试将数据从一个jFrame传输到另一个jFrame,java,encapsulation,Java,Encapsulation,我正在尝试使用单独的java类将一个jFrame中获取的电子邮件和密码数据传输到另一个jFrame中都在同一个包中。非常感谢您的帮助,这是我的第一个问题,因此不知道要提及的具体细节,如果您需要,请告诉我 LoginForm.java(第1个jFrame) 此处存在数据操作的部分字符串邮件,传递有电子邮件和密码数据 if(op==true) { JOptionPane.showMessageDialog(null, "Login Successf

我正在尝试使用单独的java类将一个jFrame中获取的电子邮件和密码数据传输到另一个jFrame中都在同一个包中。非常感谢您的帮助,这是我的第一个问题,因此不知道要提及的具体细节,如果您需要,请告诉我

LoginForm.java(第1个jFrame)

此处存在数据操作的部分字符串邮件,传递有电子邮件和密码数据

    if(op==true) {
                 JOptionPane.showMessageDialog(null, "Login Successful!", "WebApp Database Login",
                 INFORMATION_MESSAGE);
                 DataTransfer dt=new DataTransfer();      // Setting instance of DataTransfer class 
                                                            //to pass on Mail and Password details
                 dt.setEmail(mail);
                 dt.setPassword(pass);
                 InfoDisplay id=new InfoDisplay();
                 id.setVisible(true);
                 }
DataTransfer.java

    public class DataTransfer {
        private String loginEmail;
        private String loginPassword;

        public String getEmail() {
            return loginEmail;
        }
    
        public String getPassword() {
            return loginPassword;
        }
    
        public void setEmail(String email) {
            loginEmail=email;
            System.out.println("Stored Mail: "+loginEmail);
        }
    
        public void setPassword(String password) {
            loginPassword=password;
            System.out.println("Stored Pass: "+loginPassword);
        } }
public class LoginForm {
    public static void main(String[] args) {
        DataTransfer dataTransfer = new DataTransfer();
        dataTransfer.setEmail(mail);
        dataTransfer.setPassword(pass);
        InfoDdisplay infoDdisplay = new InfoDdisplay(dataTransfer);
    }
}
public class InfoDisplay {
    public InfoDisplay(DataTransfer dt) {
        //Displaying Current Date and Time
        //Getting the Stored details of Mail and Password from DataTransfer class
        String finalEmail = dt.getEmail();
        String finalPass = dt.getPassword();
        System.out.println("Email: " + finalEmail);
        System.out.println("Password: " + finalPass);
    }
}
public class DataTransfer {
    private String loginEmail;
    private String loginPassword;

    public String getEmail() {
        return loginEmail;
    }

    public String getPassword() {
        return loginPassword;
    }

    public void setEmail(String email) {
        loginEmail=email;
        System.out.println("Stored Mail: "+loginEmail);
    }

    public void setPassword(String password) {
        loginPassword=password;
        System.out.println("Stored Pass: "+loginPassword);
    } 
}
InfoDisplay.java(第二帧)

//建造师

    public InfoDisplay() {
        initComponents();
        //Displaying Current Date and Time
        Calendar cl=Calendar.getInstance();
        String datetime=cl.getTime().toString();
        jLabel5.setText(datetime);
        //Getting the Stored details of Mail and Password from DataTransfer class
        DataTransfer dt=new DataTransfer();
        String finalEmail=dt.getEmail();
        String finalPass=dt.getPassword();
        System.out.println("Email: "+finalMail);
        System.out.println("Password: "+finalPass); }

我使用打印命令只是检查它们是否被正确分配。我只从LoginForm.java运行该程序,数据存储在DataTransfer.java中,但它显示电子邮件:空值和密码:InfoDisplay()中的空值。

我使用了它

LoginForm.java

    public class DataTransfer {
        private String loginEmail;
        private String loginPassword;

        public String getEmail() {
            return loginEmail;
        }
    
        public String getPassword() {
            return loginPassword;
        }
    
        public void setEmail(String email) {
            loginEmail=email;
            System.out.println("Stored Mail: "+loginEmail);
        }
    
        public void setPassword(String password) {
            loginPassword=password;
            System.out.println("Stored Pass: "+loginPassword);
        } }
public class LoginForm {
    public static void main(String[] args) {
        DataTransfer dataTransfer = new DataTransfer();
        dataTransfer.setEmail(mail);
        dataTransfer.setPassword(pass);
        InfoDdisplay infoDdisplay = new InfoDdisplay(dataTransfer);
    }
}
public class InfoDisplay {
    public InfoDisplay(DataTransfer dt) {
        //Displaying Current Date and Time
        //Getting the Stored details of Mail and Password from DataTransfer class
        String finalEmail = dt.getEmail();
        String finalPass = dt.getPassword();
        System.out.println("Email: " + finalEmail);
        System.out.println("Password: " + finalPass);
    }
}
public class DataTransfer {
    private String loginEmail;
    private String loginPassword;

    public String getEmail() {
        return loginEmail;
    }

    public String getPassword() {
        return loginPassword;
    }

    public void setEmail(String email) {
        loginEmail=email;
        System.out.println("Stored Mail: "+loginEmail);
    }

    public void setPassword(String password) {
        loginPassword=password;
        System.out.println("Stored Pass: "+loginPassword);
    } 
}
InfoDisplay.java

    public class DataTransfer {
        private String loginEmail;
        private String loginPassword;

        public String getEmail() {
            return loginEmail;
        }
    
        public String getPassword() {
            return loginPassword;
        }
    
        public void setEmail(String email) {
            loginEmail=email;
            System.out.println("Stored Mail: "+loginEmail);
        }
    
        public void setPassword(String password) {
            loginPassword=password;
            System.out.println("Stored Pass: "+loginPassword);
        } }
public class LoginForm {
    public static void main(String[] args) {
        DataTransfer dataTransfer = new DataTransfer();
        dataTransfer.setEmail(mail);
        dataTransfer.setPassword(pass);
        InfoDdisplay infoDdisplay = new InfoDdisplay(dataTransfer);
    }
}
public class InfoDisplay {
    public InfoDisplay(DataTransfer dt) {
        //Displaying Current Date and Time
        //Getting the Stored details of Mail and Password from DataTransfer class
        String finalEmail = dt.getEmail();
        String finalPass = dt.getPassword();
        System.out.println("Email: " + finalEmail);
        System.out.println("Password: " + finalPass);
    }
}
public class DataTransfer {
    private String loginEmail;
    private String loginPassword;

    public String getEmail() {
        return loginEmail;
    }

    public String getPassword() {
        return loginPassword;
    }

    public void setEmail(String email) {
        loginEmail=email;
        System.out.println("Stored Mail: "+loginEmail);
    }

    public void setPassword(String password) {
        loginPassword=password;
        System.out.println("Stored Pass: "+loginPassword);
    } 
}
DataTransfer.java

    public class DataTransfer {
        private String loginEmail;
        private String loginPassword;

        public String getEmail() {
            return loginEmail;
        }
    
        public String getPassword() {
            return loginPassword;
        }
    
        public void setEmail(String email) {
            loginEmail=email;
            System.out.println("Stored Mail: "+loginEmail);
        }
    
        public void setPassword(String password) {
            loginPassword=password;
            System.out.println("Stored Pass: "+loginPassword);
        } }
public class LoginForm {
    public static void main(String[] args) {
        DataTransfer dataTransfer = new DataTransfer();
        dataTransfer.setEmail(mail);
        dataTransfer.setPassword(pass);
        InfoDdisplay infoDdisplay = new InfoDdisplay(dataTransfer);
    }
}
public class InfoDisplay {
    public InfoDisplay(DataTransfer dt) {
        //Displaying Current Date and Time
        //Getting the Stored details of Mail and Password from DataTransfer class
        String finalEmail = dt.getEmail();
        String finalPass = dt.getPassword();
        System.out.println("Email: " + finalEmail);
        System.out.println("Password: " + finalPass);
    }
}
public class DataTransfer {
    private String loginEmail;
    private String loginPassword;

    public String getEmail() {
        return loginEmail;
    }

    public String getPassword() {
        return loginPassword;
    }

    public void setEmail(String email) {
        loginEmail=email;
        System.out.println("Stored Mail: "+loginEmail);
    }

    public void setPassword(String password) {
        loginPassword=password;
        System.out.println("Stored Pass: "+loginPassword);
    } 
}

不要在
InfoDisplay
中构造新的
DataTransfer
。您需要在
LoginForm
InfoDisplay
之间共享对同一
DataTransfer
实例的引用。您可以通过
InfoDisplay id=newinfodisplay(dt)
@c0der来实现这一点。谢谢您的帮助。起初我很困惑,现在很清楚,创建新实例是错误的,因为新实例基本上认为它是一个新的参考权利!哇,真管用:)谢谢,现在我得到了我想要的东西。我认为在InfoDisplay()中再次创建新实例是我的错误
新信息显示(数据传输)
因为从未使用过
infoDdisplay
。@c0如果是,我会这样做。再次感谢。