如何在 JButtonsetVisible(false)
的函数中调用 JFrame addActionListener
(如下所示):
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//here
}
});
假设你有一个声明如下的变量:
JFrame frame;
你只需要打电话:
frame.setVisible(false);
否则,如果您在扩展类中JFrame
,则必须:
NameOfClass.this.setVisible(false);
或者甚至比使用setVisible(false)
, you ca dispose()
it 更好。
您只需要在定义按钮操作的位置可访问框架。您可以通过制作JFrame
final 或将其作为Action
定义的类中的字段来做到这一点:
import java.awt.event.*;
import javax.swing.*;
public class CloseFrame extends JPanel{
public CloseFrame(final JFrame frame){
JButton button = new JButton("Hide Screen");
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
//What you asked for:
frame.setVisible(false);
// What you should use instead of the above:
//frame.dispose();
}});
add(button);
}
public static void main(String[] args){
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new CloseFrame(frame));
frame.pack();
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
编辑
另请注意,JFrame.dispose()
如果您真的想关闭应用程序,您可能应该使用。