簡體   English   中英

窗口失去焦點時隱藏JDialog窗口

[英]Hide JDialog window when the window lost focus

嗨,我的Java應用程序中只有一個JDialog框。如果失去焦點,我想讓它隱藏起來。 我嘗試過不同的方法,但是無法觸發任何窗口焦點事件。 這是我的代碼:

  public void windowGainedFocus(WindowEvent e) {
    System.out.println("gained focus");
  }

  public void windowLostFocus(WindowEvent e) {
    System.out.println("lost focus");
  }

回應焦點事件可能非常棘手。 我的經驗幾乎是每當有人試圖以焦點來做非標准的事情時,他們最終都會后悔。 其中最重要的一點就是它不是那么便攜 - 許多基於X-Windows的顯示器使用焦點跟隨鼠標,這可能導致焦點在您不期望的時候被轉移出去,導致早期解雇你的對話。

也就是說,Sun的官方教程在這里: http//java.sun.com/docs/books/tutorial/uiswing/misc/focus.html 如果我沒記錯的話,你可以將一個PropertyChangeListener附加到KeyboardFocusManager,並且會觸發焦點更改: http//java.sun.com/javase/6/docs/api/java/awt/KeyboardFocusManager.html#addPropertyChangeListener %28java.beans.PropertyChangeListener 29%

使用WindowListener並處理windowDeactivated事件。

暫無
暫無

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

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