[英]Quadratic JPanel in GridBagLayout
基本上我有這個設置
| JFrame with BorderLayout |
| -------------------------- |
| JPanel with GridBagLayout |
| JPanel with NullLayout |
JFrame可調整大小。 具有GridBagLayout的JPanel包含其Elt增益JPanels,基本上看起來像這樣
|Obj|Obj|Obj|
|Obj|Obj|Obj|
|Obj|Obj|Obj|
網格應為二次方。
如果我調整窗口的大小,組件將自動調整,因此,網格將失去其二次方尺寸,並成為矩形。
我可以通過編寫自己的布局管理器來防止這種情況。 所以我要問的是:還有沒有可能實施二次方網格?
代替使用GridBagLayout
,考慮使用MigLayout 。
您還可以使用null
布局,該布局將每個組件的寬度和高度設置為寬度或高度除以行數或列數(取決於您要使用的方式),並將初始x
和y
為根據對此:
(total width % number of columns) / 2
而其他人只是
initialX + cellWidth * (col - 1)
和
initialY + cellWidth * (row - 1)
。
將此代碼放入中間JPanel
的ComponentListener
的componentResized(ComponentEvent e){...}
方法中,並在設置其邊界的單元格(面板)中循環。 這可能是一種緩慢/手動的方式,但是您將完全控制您希望它們調整大小的方式。
查看http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/index.html
上的示例,其中有GridBagLayoutDemo和SpringGridDemo可以解決您的問題。 還是最后一個轉義符,使您的窗口不可調整大小(不好!),就像在GridLayoutDemo中一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.