2014-01-20 17 views
1

卓悅。Java中的空佈局有什麼問題?

在網站上花費無數個小時尋找代碼在屏幕上拖動組件,我注意到在答案中出現了一個奇怪的趨勢。

......是因爲所有人都對這種零布局的聲音感到不寒而慄。

所以我問,每個人都有什麼問題呢?我已經編寫了不超過三個月的編程,使用Swing不超過一個,並且佈局可以輕鬆使用,並且可以進行無盡的自定義。爲什麼這是不好的做法?

+0

upvotd for「Bonjour」 – Coffee

+1

是的,在我被評論指出之後也注意到了。從來沒有在我提出的任何搜索中彈出,這是令人煩惱的。 – MMJZ

回答

5

主要的問題是所涉及的努力使確定關於各個平臺與問候之類的字體的複雜性,以及如何像素會因不同的呈現

即使兩個系統,運行相同的OS可以產生不同的輸出硬件驅動程序和渲染管道。

大部分API已經被抽象出來,你不應該關心一臺PC使用DPI爲120,使用DirectX,另一臺使用DPI爲92並使用OpenGL。

佈局管理器使開發人員不必負責在特定時刻計算組件(及其子組件)的大小,並計算這些組件之間的關係並以標準方式進行。

核心Swing API被設計爲使用此API,因此當組件以某種方式更改以代表大小更改時,將自動通知所有必需的容器,並且可以將整個組件層次結構調整爲需要。

佈局管理器的基本思想是描述同一容器上組件之間的關係,以及提供有關該容器可能有多少的信息。這使您可以專注於用戶界面的用戶界面,而不是花時間嘗試更新用戶界面以滿足各種可能的硬件和軟件組合。作爲一名前VB開發人員(不,我不自豪,如果它),我可以向你保證,與它合作最令人沮喪的部分是試圖開發可用的,動態的用戶界面,看起來不屑於下一個客戶機。

搖擺的所有方面,佈局管理是最受大家歡迎的一個 - 恕我直言

3

因爲它不是一個佈局。您所做的只是使用GUI編輯器將組件放置在絕對位置。調整窗口大小或在不同的顯示器分辨率下運行代碼看起來很糟糕。

2

尋找代碼在屏幕上拖動

這是一個不同的要求,圍繞一個組成部分。根據定義,當你在屏幕上拖動一個組件時,你不能編程位置。

說了一個佈局管理器做的更多,然後設置一個組件的位置。請查看Drag Layout以瞭解在這種情況下仍然可以使用的佈局。

對於其他情況,佈局管理器(或嵌套佈局管理器的組合),如果設計有效的GUI的更好的解決方案。