1
我有一個程序在CLI中運行,但使用JOptionPane來顯示一個彈出菜單來提醒用戶一個事件。我注意到,當調用showMessageDialog方法時,生成的彈出式菜單不會自動聚焦。在控制檯程序中的JOptionPane showMessageDialog請求焦點
有沒有一種方法可以請求彈出對話框的焦點?我曾嘗試在JOptionPane上調用requestFocus,但無濟於事。
這是一些示例代碼。
System.out.println("Backing up...");
//backUp();
Component frame = null;
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(frame, "Backup complete. Ready for encryption.");
我很抱歉,如果這是轉發,但我一直未能找到工作答案。
我只是想你的代碼,它會自動得到焦點!要測試,只需點擊「Enter」,看看彈出窗口是否消失。 – mohsenmadi
@mohsenmadi如果我在另一個窗口中,則不會這樣做,這是問題所在。通常我可以通過調用requestFocus()來解決這個問題,但是我似乎無法做到這一點,因爲showMessageDialog是靜態的,調用'jop.requestFocus()'不會生效,因爲showMessageDialog暫停線。 – Sollybird
仍然無法重現!我剛試過'嘗試{Thread.sleep(2000); JOptionPane.showMessageDialog(null,「Back ...」);} catch(InterruptedException e){}'給予時間專注於其他窗口。結果?當彈出窗口顯示時仍然有焦點!我在Mac上運行 - 也許不同的系統給出不同的行爲? – mohsenmadi