我正在編寫一個定期彈出JFrame的Java應用程序(Swing GUI)。是否有可能將JFrame放在前面而不是重點?
是否有可能以某種方式將窗口放在前面(foo.setAlwaysOnTop(true)會更好),但沒有它的焦點?
有些人不時地從屏幕上移開他們的眼睛,在打字的時候看着他們的鍵盤,我敢肯定,如果這個窗口總是捕捉到鍵盤的焦點,人們會因此而感到非常惱火,每當它突然出現時,就會丟失不少按鍵。
在其他情況下,即使用戶實際上無需始終查看鍵盤也能夠打字,彈出窗口並獲得焦點可能會從彈出窗口本身引起不必要的操作(某些Tab
+ Enter
例如,用戶不小心選擇了一個她真的不會選擇的選項)。
提前致謝!
更新
約拿表明,foo.setFocusableWindowState(false);
似乎工作,如果稱爲窗口已經呈現後(僅在Gnome的測試)。
這不起作用:
foo.setFocusableWindowState(false);
foo.setVisible(true);
foo.setFocusableWindowState(true);
然而,這確實:
foo.setFocusableWindowState(false);
foo.setVisible(true);
Thread.sleep(1000);
foo.setFocusableWindowState(true);
我得看看是否有一個事件我能趕上/聽,讓我適當時,請執行foo.setFocusableWindowStatue(true);
。
我認爲我的問題解決了。
你有沒有找到一個事件來聽取幀的渲染? – lordoku 2014-10-02 01:26:55
有沒有人找到一個事件來聽聽這裏的工作? – wrslatz 2017-09-27 14:19:31