如何在JButton的setVisible(false)
函数中调用addActionListener
JFrame(如下所示):
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//here
}
});
答案 0 :(得分:2)
假设您有一个声明为:
的变量JFrame frame;
你只需要打电话:
frame.setVisible(false);
否则,如果您在扩展JFrame
的类中,则必须:
NameOfClass.this.setVisible(false);
或者甚至更好地使用setVisible(false)
,你可以dispose()
。
答案 1 :(得分:2)
您只需要在定义按钮动作的位置访问该框架。你可以通过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()
。