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