亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java GridBagLayout 正在調整其自身之外的對象的大小

Java GridBagLayout 正在調整其自身之外的對象的大小

呼啦一陣風 2023-07-19 15:55:23
我正在使用GridBagLayoutfor 我的程序的一部分。當我將界面的這一部分添加到程序中時,它會調整界面其余部分的大小并使其看起來很愚蠢。這是添加和未添加網格包布局的并排界面。如您所見,將網格包布局對象添加到界面會調整框架中其他對象的大小。下面是我希望的界面:(我在 MS Paint 中很快就完成了這個,而不是使用代碼。)我是否需要將整個界面切換為網格包布局,或者是否可以在不這樣做的情況下執行此操作?
查看完整描述

1 回答

?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

問題不在于 GridBagLayout。


問題是您在父面板(在我看來您可能正在使用 GridLayout)和框架左側部分使用的面板上使用的布局管理器。


問題在于右側面板的首選高度大于左側面板的首選高度。然后,您使用的布局管理器將為左側面板上的所有組件添加額外的高度。同樣,您沒有告訴我們您正在使用什么布局管理器,但我猜測是 GridLayout 或 BoxLayout,并且布局管理器正在調整組件大小以填充額外的可用空間。


所以解決方案是更有效地使用布局管理器。


所以我會保留框架的默認 BorderLayout,然后你的基本邏輯將是這樣的:


JPanel rightPanel = new JPanel(); // use your GridBagLayout.

frame.add(rightPanel, BorderLayout.CENTER);


JPanel leftPanel = new JPanel(); // use you current layout

JPanel wrapper = new JPanel(new BorderLayout()); 

wrapper.add(leftPanel, BorderLayout.PAGE_START);

frame.add(wrapper, Border.LINE_START);

現在,包裝面板將遵循 leftPanel 的首選高度。因此,即使 rightPanel 更大,組件也不會被拉伸。


查看完整回答
反對 回復 2023-07-19
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號