[英]Custom Java Swing GUI vs. Netbeans Drag n' Drop Editor
與使用 Netbeans Drag n Drop 編輯器相比,手動編寫 Java Swing GUI 有什么優勢嗎? 也許例如運行時? 在我看來,編輯器會自動創建相當多的額外代碼,但我不知道這是否對加載視圖的運行時有太大影響。 我目前使用編輯器的唯一原因是它使 GUI 構建變得快速而簡單。 但是,是否有一些事情您只能通過手動編碼而無法通過編輯器完成?
還有更好的GUI框架嗎? 我已經看過 Java FX,但我真的很想要 Github 桌面軟件所具有的那種效果。 它看起來非常光滑和干凈,幾乎就像一個 web 應用程序。 盡管我確信他們是用 C++ 做到的。 在我看來,Java 在圖形方面並不多見。 我的一位朋友評論說,所有的 Java 程序看起來都一樣,而且到目前為止似乎是正確的。
我知道有類似的帖子,但坦率地說,它們不是最近的,例如以編程方式編寫 gui,或使用高級 gui 編輯器 (Java Swing)? 發布於 2010 年或Learning Java Swing (GUI builder or not?)也是在 2010 年發布的。如果沒有新內容,很抱歉打擾您。
與使用Netbeans Drag n Drop編輯器相比,手動編碼Java Swing GUI有什么優勢?
有很多,但讓我們從顯而易見的...
別誤會,我使用表單編輯器,但是在選擇表單編輯器之前,我已經手工編寫了Swing GUI十年。 我喜歡用於布置最終屏幕的表單編輯器,並且傾向於在此之前的每一步都使用手工編碼的UI,可以將釘子插入孔中。
簡短的答案是-恕我直言,除非您可以手工制作多級GUI,否則請遠離表單設計者。
我知道有人認為他們是很好的學習工具,反之亦然,我認為他們可以讓您養成懶惰和不良的習慣,這些習慣會影響您將來的工作。
盡管開發環境不應該有所作為,但並不是每個人都希望使用Netbeans,最好學習一下
還有更好的GUI框架嗎?
那只是個見解。 Swing通過使用外觀體系結構引入了蒙皮的概念,它使您能夠更改組件外觀的感覺。
JavaFX通過使用CSS提供了類似的功能
Swing也是高度可定制的,很容易進入組件的“繪畫”級別,甚至可以根據需要生成自己的組件。
制作“光滑” UI的能力與工具包無關,而取決於開發人員。 只需將字段和其他組件拖放到容器上很容易,但是開發人員需要對底層API有充分的了解,並需要一些天才才能使它看起來“漂亮”。
漂亮並不總是等於功能。 最好的UI是您不必考慮的東西,不會妨礙您的工作而已。 當您使用某個程序長達數小時,數天,數周的時間時,您將不會關注UI的外觀,而是可以讓您輕松完成所需的工作-IMHO
手工編碼完成的GUI Builder無法完成的第一件事是:動態更改接口。
例如:
如果要構建涉及多個JTextField
的表單,但是不確定在構建GUI時將有多少個表單。 該程序將需要動態填充JTextField
。 對於GUI Builder,這是不可能的。
另外,當您具有復雜的接口時, GroupLayout
的大小調整行為可能會很麻煩且令人困惑。 另一方面,在編寫復雜的界面時,手工編碼的布局需要大量工作(但是,至少它們的調整大小行為是可以預測的)。
應該使用經典的 GUI 構建器來制作 GUI 原型。 一旦你確切地知道你想要什么,你應該擺脫它並清理代碼(分解它,記錄它,...簡而言之,讓它簡單易讀)。
我的一位朋友評論說,所有的 Java 程序看起來都一樣,而且到目前為止似乎是正確的。
並非絕對正確:JavaFX 外觀可通過 css 進行自定義。 Swing 還可以通過 LAF 系統或通過覆蓋paint* 方法完全自定義(我承認更耗時)。
如果你尋找一些簡單的東西而沒有生成代碼的缺點,我建議你看看ReflectionUI :easy外觀定制(這不是唯一的好處): .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.