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