2012-07-26 65 views
1

我得到一個任務,將帶有JComboBox的Java應用程序從OS2移植到Windows。當Windows失去焦點時,JComboBox保持打開狀態

OS2(JRE1.4)中的JComboBox有一個行爲,當彈出窗口打開時,用戶單擊其他窗口,彈出窗口保持打開狀態。但是當它運行在Windows(JRE1.6)中時,用戶點擊了其他窗口,JComboBox將自動關閉。

我如何在Windows中實現相同的行爲?我希望它保持打開...

回答

2
  1. 不可能的,總是JComboBoxe的彈出隱藏在focusLost,這些changes were fixed in Java 1.4

  2. 必須創建自己的ComponentJComboBox模擬funcionalities,popup window應根據JDialog/JWindow(強烈建議不要......)

+0

謝謝!如果使用舊Java版本的JComboBox源代碼,你認爲它會起作用嗎?哪裏可以找到?我只能找到最新的一個...... – Johnny 2012-07-26 11:05:17

+0

@Johnny有兩個先決條件,在JDK1.4中編譯Java代碼並在PC上運行,這是頂級JVM Java1.4,不值得付出努力,一個很好的選擇可以使用Java Calendars彈出窗口基於JDialog/JWindow上的(大多數) – mKorbel 2012-07-26 13:04:33

+0

最後,我做了一個繼承JComboBox的自定義組件,用我自己的showPopup/hidePopup替換了它的所有鼠標/鍵處理程序,以顯示/隱藏自定義JList。不是一個優雅的解決方案,但使用最少的編碼。 – Johnny 2012-08-19 10:55:39

相關問題