Java Swing表单之间的数据传输

Java Swing表单之间的数据传输,java,swing,jframe,Java,Swing,Jframe,我有5张表格,其中一张在另一张关闭时打开。第二个成员登录屏幕。最后一个是购票屏幕。在购票屏幕上进行预订。成员信息保存在数据库中。如果登录屏幕上的电子邮件和密码匹配,请使用数据库中的电子邮件和密码登录。我想访问最后一个表单中的当前用户 不幸的是,我从一开始就没有为此采取行动。现在,如果登录成功,我可以接收用户的电子邮件并将其转发到最后一个表单。我可以通过此电子邮件访问会员id,并在最终预订过程中添加会员信息 我无法将您的会员电子邮件转发到最后一个表单!这就是问题所在。我已经在表单之间做了很多切换,

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

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

我无法将您的会员电子邮件转发到最后一个表单!这就是问题所在。我已经在表单之间做了很多切换,但是我只能用连续打开和关闭的表单来完成。如果我用构造函数创建一个对象,并按以下方式键入setVisibletrue,则会传输电子邮件,但最后一个表单会在第一个表单之后打开。如果我删除setVisible方法或使其为false,即使数据在最后一部分传输,我也无法使用它,因为我无法在标签上打印它

 private void btnMemberEnterActionPerformed(java.awt.event.ActionEvent evt) {                                            
        BiletAl pencere2 = new BiletAl(txtUyeEPosta.getText(),lbl.getText());
        pencere2.setVisible(true);}
如果发生这种情况:表单打开顺序被打破。但无文本,即输入的电子邮件传输到标签:

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


然后尝试使用以下命令:

1此设置为VisibleTrue;
2.设置VisibleFalse

我有5张表格。。如果“forms”指的是JFrame实例,请使用类名,那么这已经出错了。这5个视图应该打包到CardLayout和/或对话框中,而不是主应用程序的单个JFrame。多JPanel应用程序需要一个数据模型来将所有内容保持在一起。数据模型由一个或多个普通Java类组成,用于保存所有保留信息。数据模型与数据库通信。数据模型填充视图,该视图由一个JFrame和多个JPanel组成。控制器类是响应JButton单击的ActionListener类。该模式有助于保持关注点的分离,并使应用程序更易于理解。我处于更基本的层次。与学习如何使用布局和对话框相比,需要更深入地理解Swing才能使用JFrame。此外,如果你这样做,人们更愿意提供帮助。我从未听说过CardLayout和/或对话框的概念。这就是为什么我要引起你的注意。任何熟悉它们的人都知道这是最好的方法。因此,现在是熟悉它们的时候了。简单易懂的资源将“X Java教程”放在搜索引擎中,其中X是有问题的类,例如CardLayout或JDialog。最受欢迎的应该是Java教程,它来自马口铁,通常包括示例代码?我不是在浪费时间去想它。我也试过了,但它不起作用。
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);
    
   
}
private void btnMemberEnterActionPerformed(java.awt.event.ActionEvent evt) {                                            
        BiletAl pencere2 = new BiletAl(txtUyeEPosta.getText(),lbl.getText());
       }