2012-01-22 21 views
1

假設您的JPanel大小爲200 x 200,並且具有自定義組合框類型的組件,其下拉列表應該能夠在200 x 200 JPanel之外擴展。自定義組件可以擴展到其容器的界限以外 - 如何?

我面臨的問題是,下拉列表不能在容器邊界外面「繪製」,或者容器的大小根據下拉列表來確定。

如何將組件添加到允許該組件超出容器邊界的容器中? Java JComboBox如何在內部執行此操作?

回答

3

只需使用JPopupMenu作爲下拉菜單。 JPopupMenu內部將處理繪畫的邊緣和邊緣。

+0

的回報最好是鏈接到的JavaDoc的最新版本。我編輯了您的答案以指向J2SE 7.有關獲取最新文檔鏈接的提示,請參見[優點2](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) 。 –

1

如果繼續aplication該截圖您張貼在這裏的發展,就必須尋找如何使用JWindow(未加裝飾的頂層容器),作爲例如一些最好的JCalendarSwingX,爲full_workaround約setVisible/toFront/FocusSubsystem /上focusGained/focusLost

有沒有問題設置JWindowPointsetSize,你可以從任何JComponent的

+0

使用JWindow會比使用未裝飾的JFrame有什麼好處? – rtheunissen

+0

它太難管理焦點/ toFront/toBack之間的兩個JFrames,因爲這是有JDialog/JWindow,仔細與JPopup和JCombobox,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4799266 – mKorbel

相關問題