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

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

Java:組件中setPreferredSize()和setSize()方法之間的區別

Java:組件中setPreferredSize()和setSize()方法之間的區別

HUWWW 2019-07-10 15:58:17
Java:組件中setPreferredSize()和setSize()方法之間的區別好的,我閱讀了Java文檔,只是不知道這兩種方法之間的主要區別是什么。有時我用setSize(),有時setPreferredSize()有時一個做我想做的,有時做另一個。那么,兩者的主要區別是什么呢?我該用哪一個JFrames和JPanels?謝謝
查看完整描述

3 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

簡單的回答是:這很復雜。

稍長一點的答案是:使用setSize()如果組件的父級沒有布局管理器,并且setPreferredSize()及其相關setMinimumSizesetMaximumSize如果是的話。

setSize()如果組件的父級使用布局管理器,則可能不會做任何事情;這通常會產生影響的位置將位于頂層組件(JFramesJWindows)和里面的東西scrolled panes..你也必須打電話給setSize()如果在沒有布局管理器的父級中有組件。

作為一般規則,setPreferredSize()如果您有一個布局管理器,那么應該做“正確的事情”;大多數布局管理器的工作方法是獲取其組件的首選(以及最小和最大)大小,然后使用setSize()setLocation()根據布局規則定位這些組件。所以(舉個例子)BorderLayout將試圖使其“北方”區域的邊界與preferred size它的北方部分-它們可能會變大或變小,這取決于jframe、布局中其他組件的大小等等。


查看完整回答
反對 回復 2019-07-10
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

setSize()setBounds()當沒有使用布局管理器時,可以使用。

但是,如果使用的是布局管理器,則可以使用setXXXSize()方法,如setPreferredSize()setMinimumSize()等。

并確保組件的容器使用符合請求大小的布局管理器。這個FlowLayoutGridBagLayout,和SpringLayout管理器使用組件的首選大小(后兩個取決于您設置的約束),但是BorderLayoutGridLayout如果您為一個已經可見的組件指定了新的大小提示,則需要調用它上的重新驗證方法,以確保它的包含層次結構再次布局。然后調用重新繪制方法。


查看完整回答
反對 回復 2019-07-10
?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

setSize將組件的大小調整到指定的大小。

setPreferredSize設置首選大小。根據其所在容器的大小,或者如果用戶手動調整組件的大小,組件可能實際上不是這個大小。


查看完整回答
反對 回復 2019-07-10
  • 3 回答
  • 0 關注
  • 5640 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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