单击按钮关闭JFrame

Moh*_*sal 23 java swing

我有JFrame的jButton1私有成员,我想在单击按钮时关闭框架.

jButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
    }
});
Run Code Online (Sandbox Code Playgroud)

我想做,super.close()但找不到超级超级.有没有办法引用JFrame

Ant*_*ton 37

您需要引用要关闭的特定帧,但假设您有引用dispose()应关闭帧.

jButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
       frameToClose.dispose();
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 如何处理这个(当前)JFrame ??? (3认同)

小智 13

JButton b3 = new JButton("CLOSE");

b3.setBounds(50, 375, 250, 50);

b3.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        System.exit(0);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 非常适合单窗口应用程序,但如果您使用它来关闭单个窗口,它也将关闭所有其他窗口... (3认同)

lin*_*159 9

在我看来,你在这里有两个问题.一个是JFrame没有一个close方法,这个方法在其他答案中得到了解决.

另一个是你在引用你的JFrame时遇到了麻烦.在其中actionPerformed,super指ActionListener.要在那里引用JFrame实例,请MyExtendedJFrame.super改用(您也应该能够使用MyExtendedJFrame.this,因为我没有理由为什么要覆盖disposeor 的行为setVisible).


Rom*_*man 2

您可以使用setVisible ()JFrame 的方法(并将可见性设置为false)或dispose ()更类似于close操作的方法。