3
我正在創建一個應用程序Swing
,我遇到了問題。我想要處理focusLost()
和focusGained()
事件,但我認爲我的代碼有問題。窗口焦點事件的意外行爲
我已經得到了以下的測試代碼:
addWindowFocusListener(new WindowFocusListener() {
@Override
public void windowLostFocus(WindowEvent e) {
System.out.println("Lost!");
System.out.println(e.toString());
}
@Override
public void windowGainedFocus(WindowEvent e) {
System.out.println("Gained!");
System.out.println(e.toString());
}
});
而且,當我激活窗口,似乎應用處理2個事件一次:
Gained! java.awt.event.WindowEvent[WINDOW_GAINED_FOCUS,opposite=null,oldState=0,newState=0] on frame0 Lost! java.awt.event.WindowEvent[WINDOW_LOST_FOCUS,opposite=null,oldState=0,newState=0] on frame0
而且,當我停用窗口時,程序不會打印任何內容。
還有更有趣的事情。當我打開屬於我的應用程序的新的JFrame
時,事件系統正常工作,即使當我關閉第二個Window
時。
我只是不知道它爲什麼會發生。請幫忙。
系統規格:
- OS:Ubuntu的12.04 x86_64的
- JVM:OpenJDK 7的
[email protected]:~$ java -version Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd java version "1.7.0_03" OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
您可以發佈[短的,獨立的,正確的示例(SSCCE)(http://www.sscce.org/)演示您的問題(即一些可以運行爲是)? – assylias 2012-07-23 17:09:53
請發佈代碼。由於我關於問題的政策,我通過給你一個投票來撤消了反對票。 – 2012-07-23 17:44:18
在這一刻我不能......我爲自己寫了一個簡單的例子,但一切都好。一個應用程序,我有這個問題是一個大的應用程序,所以我不能在那裏上傳代碼。我認爲這個問題可能是由jMonkeyEngine(lwjgl)畫布造成的。如果我能編寫SSCCE,我會寫它... – m4tx 2012-07-23 18:07:43