2012-09-11 38 views
0

我試圖讓我的Swing組件不是垂直縮放和水平縮放,或者其他方式(換句話說,我只希望它們有一個自由軸,它們可以在某些情況下水平縮放,或者垂直在其他)。任何方式來控制Swing組件的縮放比例?

有沒有任何優雅的方式做到這一點,而無需添加大量的JPanel? LE:我寧願不對已收到的已製作佈局進行任何重大修改。

我希望有一個神奇的,簡單的解決這個問題,像JTextField.don'tScaleVerticallyIdiot();

回答

2

我認爲你可以做到這一點與設置BorderLayout作爲容器的LayoutManager,所以:

+0

我會喜歡它的工作方式,但它仍然根據JFrame進行縮放。我希望它是一個單一的行作爲高度,並按照我拖動框架的方式進行水平縮放,但不添加多個JPanel。 – Eugen

3

您需要使用合適的佈局管理器。

兩個最強大的是MigLayoutFormLayout。我個人比較喜歡MigLayout,因爲它更容易直接使用,而FormLayout只適用於像WindowBuilder這樣的窗口設計器。

兩者都具有相似的特徵特徵。

使用MigLayout,您可以指定組件是否允許在特定軸上增長,如果允許,應該提供什麼樣的權重(而不是額外的空間轉到其他組件)。

+0

我寧願避免對收到的完整和複雜佈局進行任何大的更改... – Eugen

2

您沒有提及您當前正在使用哪個LayoutManager

就我個人而言,我會用GridBagLayout來實現你的目標。

+0

歡迎在此論壇 – mKorbel

+0

謝謝!似乎老太陽論壇自從與oracle論壇合併後就成爲了鬼城。 – splungebob

+0

'1)'將帖子從'forums.sun.com'遷移到'ghost town' :-),'2)'和'ghost town'有一個大問題,你不能在帖子中搜索歷史,谷歌沒有返回任何內容,3)大多數回答者在兩個或更多的Java論壇上都很活躍 – mKorbel

1

我希望它是一個單一的行作爲高度和水平縮放,就像我拖動框架一樣,但不需要添加多個JPanel。

我認爲BoxLayoutPAGE_AXIS可以做到這一點。