簡體   English   中英

Java Swing應用程序生命周期問題

[英]Java Swing application lifecycle problem

我有一個Java應用程序,用於啟動Swing用戶界面。 接口是帶有封裝的JFrame實例的類。 問題在於,應用程序分配了一些資源,而Swing界面使用了這些資源,但是應用程序關閉了資源, 而不是用戶界面。

當完整的Swing接口關閉時,如何實現主應用程序得到通知,或者直到關閉它為止,Swing接口的開始都會阻塞。 關閉表示JFrame WindowListener的WindowAdapter.windowClosed(WindowEvent)方法已被調用。

當JFrame不可見時,此線程( 鏈接 )的解決方案似乎返回,這是否包括WINDOW_CLOSED事件處理?

編輯:也許它將是實現此生命周期接口的解決方案:

public interface Lifecycle {

    public void startup();

    public void shutdown();

}

現在,Swing接口類必須在WindowEvent.WINDOW_CLOSED事件的處理程序中調用主應用程序的shutdown()方法。

這樣做是否可行並且是一個好習慣?

嘗試使用Toolkit.getDefaultToolkit().addAWTEventListener() 如果提供適當的事件掩碼,則可以獲取所需的事件。 這無需訂閱JFrame的特定實例。

方法應如下

  • 資源關閉應該引發一個事件
  • 該類封裝了JFrame,應該偵聽資源關閉事件
  • 並且偵聽器應調用JFrame.setEnabled(false)方法使其禁用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM