簡體   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