如何重新启动Java应用程序启动我的应用程序的特定类?

时间:2013-11-11 16:40:25

标签: java swing user-interface jbutton

我有以下情况:

我有一个Java Swing 应用程序。

在实现我的GUI的类中,我有一个名为注销的按钮,tath绑定到处理click事件的事件监听器,类似于:

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的类)来重新启动它

我该怎么做才能做到这一点?

TNX

安德烈

1 个答案:

答案 0 :(得分:1)

你根本不需要close/open window junky方法。只需使用Card Layout

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

    getContentPane().setLayout(new CardLayout());
    
  2. 将不同的Form内容代码放在不同的面板中 将它们添加到内容窗格及其对应的名称,例如:

     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");
    
        }
    });
    
  4. 从我的另一个答案中查看CardLayout demo