-1

我有以下情况:

我有一个 Java Swing应用程序。

在实现我的 GUI 的类中,我有一个名为Log Out的按钮,它绑定到处理单击事件的事件侦听器,如下所示:

JButton logOutButton = new JButton("LogOut");
header.add(logOutButton);

然后在实现我的 GUI 的同一个类中,我声明了使用内部类处理此事件的ActionListener :

    logOutButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            System.out.println("logOutButton clicked !!!");
            System.exit(0);
        }
    });

在这一刻,当我单击logOutButton按钮时,程序结束。我希望通过运行一个名为LoginForm的特定类(实现登录表单 GUI 的类)来重新启动它

我能做些什么来做这件事?

肿瘤坏死因子

安德烈亚

4

1 回答 1

1

你根本不需要close/open window垃圾方法。只需使用卡片布局

  1. 将 Frame 的内容窗格的布局设置为卡片布局。

    getContentPane().setLayout(new CardLayout());
    
  2. 将您不同表单的内容代码放在不同的面板中,并将它们添加到具有相应名称的内容窗格中,例如:

     getContetnPane().add(logInFormPanel, "logIn Form");
    
  3. 现在您可以通过调用来模拟卡片在必要时出现CardLayout.show(Container parent, String name)。例如:

     logOutButton.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent event) {
                  System.out.println("logOutButton clicked !!!");
              CardLayout cl = (CardLayout)(getContentPane().getLayout());
              cl.show(getContentPane(), "logIn Form");
    
        }
    });
    

从我的另一个答案中查看CardLayout演示。

于 2013-11-11T18:19:30.723 回答