我决定在我的JFrame上放置“关闭”按钮。如果我自己测试那个JFrame,它可以正常工作,但是当我在通过另一个类打开它之后尝试关闭它时,它将不会关闭。
以下是代码:
JButton btnClose = new JButton("Close");
btnClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
frame.dispose();
}
});
btnClose.setBounds(282, 666, 96, 50);
contentPane.add(btnClose);
我尝试过使用frame.dispose()
和frame.close()
以及super.dispose()
,但唯一可行的是system.exit(0);
,但随后会退出整个程序。
问题:
JFrame
,框架就会正常关闭。JFrame
,则关闭按钮不执行任何操作。请告知。
答案 0 :(得分:1)
您是否在ActionListener中添加了一个显示语句以确保代码正在执行?
如果正在执行代码,则问题可能是帧变量具有无效引用。
您无需保留对框架的引用。而是使用类似的东西:
Window window = SwingUtilities.windowForComponent( e.getSource() );
window.dispose();
答案 1 :(得分:0)
在框架上使用setVisible(false);
。然后致电处理。