[英]awt window not closing when close button is clicked
我为Virtual KeyBoard实现了一个示例类,并运行了这个VirtualKeyboardTest。键盘出现但主要问题是单击x按钮时它没有正确关闭。我怎么能纠正这个?
import java.awt.*;
import java.awt.event.*;
public class VirtualKeyboardTest
{
public static void main(String args[])
{
VirtualKeyboard vk = new VirtualKeyboard();
vk.setSize(500,300);
vk.setVisible(true);
Frame f1 = new Frame();
f1.addWindowListener( new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
System.exit(0);
}
} );
}
}
你的代码不正确。 代替
f1.addWindowListener( new WindowAdapter() {
...
尝试
vk.addWindowListener( new WindowAdapter() {
...
这将关闭你的窗口。
最好使用方法public void dispose()
vk.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
vk.dispose(); // use dispose method
}
}
);
AWT是重量级的,即其组件使用系统资源 。
Windows是非阻塞的。 这意味着一旦在代码中创建一个代码,代码就会继续执行。
这意味着您的Window可能会在创建后立即超出范围,除非您在其他位置明确存储了对它的引用。 此时窗口仍在屏幕上。
这也意味着当你完成它时,你还需要一些其他方法来摆脱它。 输入Window dispose()方法 ,该方法可以从一个Window的侦听器中调用。
检查一下:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
它基本上告诉Windows管理器在按下“X”时关闭你的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.