Утилизация JFrame нажатием внутренней JPanel - PullRequest
1 голос
/ 01 марта 2010

Я пытаюсь избавиться от своего JFrame, нажав кнопку, расположенную на JPanel, которая находится на JFrame, который я хочу закрыть.

Я пытался создать статический метод для класса JFrame, но, конечно же, моя IDE сказала, что этого не произойдет.

Кто-нибудь думает о решении?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 июня 2014

Сделайте что-то вроде этого:

JButton closeFrameButton = new JButton("Close");
closeFrameButton.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        ((Window) getRootPane().getParent()).dispose();
    }
});
0 голосов
/ 01 марта 2010

Попробуйте это:

public class DisposeJFrame extends JFrame{
    JPanel panel = new JPanel();
    JButton button = new JButton("Dispose JFrame");

    public DisposeJFrame(){
        super();
        setTitle("Hi");
        panel.add(button);
        add(panel);
        pack();

        button.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent arg0) {
                dispose();
            }
        });
    }

    public static void main(String args[]){
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                DisposeJFrame jf = new DisposeJFrame();
                    jf.setVisible(true);
            }
        });
    }
}
...