2011-10-16 21 views
0

我正在使用Netbeans 7,在設計Swing容器和控制器時遇到了最不尋常的情況。由於某些未知的原因,在某些情況下,容器或控制器決定選擇它們自己的大小和尺寸,儘管我已嘗試在每個容器的代碼級別和屬性視圖中設置這些參數。有時我會看到我的一些jButton的Text標籤沒有顯示,有時我會得到不同大小的JDialog或JPanel,即使我在設計視圖和代碼級別指定了它們。擺動容器和控制器不遵守應用於它們的設置?

有沒有人對這種奇怪的行爲有任何解釋,或者有人遇到過像Netbeans這樣的問題?

親切的問候

回答

2

你可能通過內置FreeLayout,或GridBagLayout奠定了集裝箱。有關內置oprions和funcions具體問題是存在的Netbeans Forums,不過貌似爲witouth問題的答案,

Java Desktop AplicationJSR296)很長時間不支持框架,我不知道原因,並沒有知道爲什麼(以避免任何猜測)

Java Desktop Aplication是基於Java AWT & Swing Components

考慮到使用標準Swing JComponents通過標準LayoutManagers奠定,而不是reicarnate un_supported Framework,一布特Swing有電流(標記)搖擺論壇

也許是太舒適drag_and_drop Components從準備好的選擇,但困擾自定義(是non_user-friedly,我的看法)

好回答您有一個基於問題要問on SSCCE

0

組件根據容器的當前規則LayoutManager調整大小。每個經理都有自己的一套管理組件大小的規則。例如,如果您使用BorderLayout(enter link description here),並在中間部分添加組件,則它將使用所有可用空間,忽略您的尺寸設置(包括最小/首選/最大尺寸)。但是,如果您使用的是GridBagLayout,則可以指定組件間的可用空間分配方式。

看來你的問題是一個佈局管理器問題。大多數情況下,默認管理器不會是您想要使用的管理器。請務必根據您的需要設置正確的LayoutManager實例。如果您需要更多指導,網絡上有許多佈局管理器教程。 This one來自Oracle(以前由Sun編寫的,當它仍然擁有的東西)。