Java Swing 表单之间的数据传输

问题描述

我有 5 个表单,其中一个打开时另一个关闭。第二个会员登录屏幕。最后一个是购票画面。在购票屏幕上进行预订。会员信息保存在数据库中。如果登录屏幕上的电子邮件和密码匹配,请使用数据库中的电子邮件和密码登录。我想在最后一个表单中访问当前用户

不幸的是,我从一开始就没有为此采取行动。现在,如果登录成功,我可以将用户的电子邮件转发到最后一个表单。我可以从这封邮件中访问会员 ID,并在最终预订过程中添加会员信息。

我无法将您的会员电子邮件转发到最后一个表格!那就是问题所在。我已经在表单之间进行了很多切换,但是我只能对连续打开和关闭的表单执行此操作。如果我使用构造函数创建一个对象并按以下方式键入 setVisible(true),电子邮件将被传输,但最后一个表单在第一个表单之后打开。如果我去掉setVisible方法或者make false,即使最后一部分传输了数据,也无法使用,因为我无法将其打印在标签上。

 private void btnMemberEnteractionPerformed(java.awt.event.ActionEvent evt) {                                            
        BiletAl pencere2 = new BiletAl(txtUyeEPosta.getText(),lbl.getText());
        pencere2.setVisible(true);}
public class BiletAl extends javax.swing.JFrame { 


public BiletAl() {
    initComponents();
    
   
}

public BiletAl(String gelenEPosta,String lbl) {
    initComponents();
    System.out.println(gelenEPosta);
    lblGelenEposta.setVisible(true);
    lblGelenEposta.setText(gelenEPosta);
    
   
}

如果发生这种情况:表单打开顺序被破坏。但是“nil”文本,即输入的电子邮件被传输到标签

enter image description here

enter image description here

private void btnMemberEnteractionPerformed(java.awt.event.ActionEvent evt) {                                            
        BiletAl pencere2 = new BiletAl(txtUyeEPosta.getText(),lbl.getText());
       }

如果第一部分的变化是这样的:在表单之间切换是正确的,但即使作为构造函数参数来的数据与System.out.println是正确的,当setLabel时它不会将其添加标签中.标签不会在收到的电子邮件中写上“nil”。

enter image description here

解决方法

然后尝试使用这个命令:

1)this.setVisible(true); 2)this.setVisible(false);