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

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

為什么不同意在Swing中使用空布局?

為什么不同意在Swing中使用空布局?

為什么不同意在Swing中使用空布局?最近,我開始為我工作的公司創建一個項目。作為背景信息,我仍然是一個學生和一個初學者程序員,所以我的解決方案可能不推薦,我不知道如何做否則,但它的工作,但我不會因此而受到評判,因為這是一個學生的工作,與編程完全無關。這個程序的特點是,它將在多臺不同屏幕大小和分辨率(800x600及以上)的計算機上運行。為了確保它在不丟失程序任何部分的情況下占用盡可能多的屏幕,我使用相對值將布局設置為NULL,并對所有內容進行硬編碼。這個程序是Kiosk風格的,我首先得到屏幕大小值,然后從那里開始(例如,在我的頭頂上,左邊的菜單占屏幕的八分之一,最上面的欄占2%,等等)。我還使用字體度量來確保組件的大小是正確的,并且所有的內容都能很好地顯示出來。我的問題是:為什么不使用布局管理器而使布局為空?(我在一些論壇上被告知,這是一種可怕的做事方式)我知道布局管理器是如何工作的,也知道如何使用不同的布局,但對于這個程序的要求(多個不同的分辨率、自定義的按鈕形狀和位置、更改語言時組件上的文本變化等等),我無法看到自己使用布局管理器來完成這一切。在這種情況下,更有經驗的程序員如何使用布局管理器?當您希望一個按鈕位于特定的某個位置,而其他特定的組件與任何預定義的布局不匹配時,您會做什么呢?
查看完整描述

4 回答

?
30秒到達戰場

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

如果您對布局管理器進行了正確的分層,屏幕將重新流到不同的大小,其想法是在所有屏幕大小上使用一組布局管理器。

如果使用NULL,則必須自己處理每個屏幕大小。不僅如此,如果該應用程序可以窗口,您必須支持每個可能的大小,他們可能滾動到。

這樣做有點困難,但版面管理員就是為了做到這一點而設計的。

有一些常見的伎倆。BorderLayout是一個很好的布局開始。有時,您可能會在多個級別使用它-通常只有2或3個組件在其中。這是因為它非常擅長給所有的區域,只有一個區域,最低要求的面積,并把所有其他的東西給中心。

FlowLayout可能很有用,但是如果您的組件大小不同,這是很棘手的。

我不會嘗試GridBagLayout,除非您計劃編寫代碼來滿足您的布局管理器(這是一個很好的解決方案!)

我也不會使用GUI構建器,他們不知道您希望重新布局的總體方式。


查看完整回答
反對 回復 2019-05-30
?
哈士奇WWW

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

簡而言之:因為上面解釋的所有工作都是由布局管理器完成的(或者至少:應該完成)。

通常情況下,當使用空布局時,它還意味著所有的位置和大小都被硬編碼成一個值,因此根本沒有靈活性。這意味著對窗口大小、語言、字體大小、顯示密度或任何其他相關參數的更改對布局沒有任何影響,而且您會得到通常丑陋的效果:窗口的空部分;小的、不可調整大小的列表;標簽被切斷的按鈕;.

聽起來你所做的工作確實應該由布局管理器來完成。

查看完整回答
反對 回復 2019-05-30
?
慕碼人8056858

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

你實際上是在使用一種布局-你自己的,所有復雜的位置計算。

您可以將這些邏輯移動到自定義布局管理器類,以安撫批評者。


查看完整回答
反對 回復 2019-05-30
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

嗯,訣竅應該是混在一起。LayoutMangers并使用嵌套數JPanels是否有不同的布局,實際上取決于JComponents,這使您可以通過以下方式創建如下所示的GUI:絕對Layout但是對于每個屏幕分辨率和比率(4:3、16:9、16:10),GUI的外觀/輸出是相同的。

查看完整回答
反對 回復 2019-05-30
  • 4 回答
  • 0 關注
  • 900 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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