![](/img/trans.png)
[英]JPanel is not sizing correctly within JFrame; utilizing GridBagConstraints
[英]JFrame & JPanel sizing issue
我正在嘗試編寫包含JPanel的JFrame。 在JPanel中是JTextField的數組。 所以,我的GUI看起來像:
我沒有使用布局管理器,並且已將JFrame和JPanel設置為null。 我正在手動調整這些組件的大小。
您可以看到,即使我使用了與包含的JFrame相同的大小,JPanel的右側部分也被切掉了。
代碼如下:
我已經通過將JTextField數組中的列數乘以JTextField的寬度來計算JPanel所需的寬度。 除此之外,還需要添加JTextFields之間的每個間隙的寬度(其中有(columnNumber-1))以及兩個邊界間隙。
我已經做到了,但是如右圖所示,右側的邊框間隙被切掉了。
如果我在panelWidth中添加一些隨機量,那么您可以在其中看到右側的間隙,但是我的問題是我在這里缺少什么? 如果JFrame端和JPanel的大小相同(我將它們都打印出來),並且打印出的編號相同,那么這應該可以正常工作。
傑里米
我希望行/列值的任何組合都允許每個JTextField之間的垂直和水平距離恆定,並且每個文本字段都保持默認大小。
GridLayout允許您指定每個組件之間的水平/垂直間隙,並可以控制網格的大小。
然后,您可以在尊重網格大小的面板中使用GridLayout來包裝面板。
例如,您可以這樣做:
JPanel grid = new JPanel( new GridLayout(...) );
JPanel wrapper = new JPanel( new GridBagLayout() );
wrapper.add(grid, new GridBagConstraints());
frame.add(wrapper, BorderLayout.CENTER);
如果打包框架,網格面板將以首選尺寸顯示。
如果您調整框架的大小,則網格面板將保持在包裝面板的中心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.