繁体   English   中英

单击关闭按钮时,awt窗口不关闭

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM