如何在java swing中关闭另一个类的窗口?

时间:2013-11-11 09:01:27

标签: java eclipse swing

标题## 1.列出项目

我通过扩展JFrame类来编写代码作为一个类中的设计部分,并且在另一个类(不是内部类)中使用按钮的动作侦听器,最后在主要方法中使用单独的类。在监听器类中,我正在关闭当前窗口并打开新窗口。我能打开新窗口。但我不能关闭现有的窗口。请帮帮我。(我无法访问setVisible()方法) 谢谢 哈利。 这里我的代码是

CredentialsForm .java

public CredentialsForm()
    {

        btnGetSessionKey.addActionListener(new ButSesKeyListener());
        btnGoToMessaging.addActionListener(new ButGoToMesListener());
        btnGoToMessaging.setFont(new Font("Arial", Font.PLAIN, 12));    


        btnGetSessionKey.setFont(new Font("Arial", Font.PLAIN, 12));

        lblAutomationId.setFont(new Font("Arial", Font.PLAIN, 12));
        lblYouSessionKey.setFont(new Font("Arial", Font.PLAIN, 12));        
        lblEncryptionKey.setFont(new Font("Arial", Font.PLAIN, 12));
        lblSingleSignOn.setFont(new Font("Arial", Font.PLAIN, 12));
        lblUserName.setFont(new Font("Arial", Font.PLAIN, 12));
        lblEmail.setFont(new Font("Arial", Font.PLAIN, 12));        
        tfGoToMessaging.setColumns(10);
        tfGetSessionKey.setColumns(10);
        tfEncryptionKey.setColumns(10);
        tfSingleSignOn.setColumns(10);
        tfUserName.setColumns(10);
        tfEmail.setColumns(10);
        tfAutomationId.setColumns(10);

        initGUI();
    }

2 个答案:

答案 0 :(得分:1)

  

我无法访问setVisible()方法

在ActionListener中,您可以编写通用代码来访问当前窗口:

Component button = (Component)event.getSource();
Window window = SwingUtilities.windowForComponent(button);
window.setVisible(false);

答案 1 :(得分:0)

试试这个

public class FirstFrame extends JFrame {
 // your all coding..
}

public class SecondFrame extends JFrame {
   public static FirstFrame first;

   public static void main(String[] a){
       // show the first...

       // anywhere you hide first using first.setVisible(false);
   }
}