雖然目前Java算不上前端開發的主力,但是作為Java入門基礎的一部分,學習Java的GUI編程還是有必要的,而且可以做出一些小且有趣的圖形程式來提高學習熱情。本篇學習總結均為一個Beginner的筆記與心得,如有描述不到或錯誤之處,敬請指正。 一個合格的Java Developer,不僅要掌握技術... ...
雖然目前Java算不上前端開發的主力,但是作為Java入門基礎的一部分,學習Java的GUI編程還是有必要的,而且可以做出一些小且有趣的圖形程式來提高學習熱情。本篇學習總結均為一個Beginner的筆記與心得,如有描述不到或錯誤之處,敬請指正。
1. JavaGUI主要開發工具 -- Swing類庫的誕生與功能
一個合格的Java Developer,不僅要掌握技術,還要有一定的Java歷史背景知識儲備。所以先簡要介紹一下用於JavaGUI開發的主要類庫:Swing。
在Java 1.0時代便有設計GUI的基本類庫Abstract Window Toolkit,簡稱AWT。AWT庫工作原理是將處理用戶界面元素的任務委派給目標平臺(操作系統)的本地GUI工具箱,由本地GUI工具箱負責用戶界面元素的創建和動作。這種工作方式是有利也有弊,先說下利處:
- 處理速度可能要快一點。
- 可以適應不同的平臺,“一次編寫,隨處使用”。
弊處:
- 觀感依賴於目標平臺。
- 有些平臺並沒有像Windows或Mac這樣豐富的界面組件(早期)。所以把AWT的設計工作限制在了“最小公分母”。
- 不同平臺存在不同的bug。
1996年,Netscape創建了另一種GUI庫IFC,他的工作方式是 將用戶界面組件繪製在空白視窗上,而對等體只需要負責創建和繪製空白視窗。Sun和Netscape合作並完善了這種方式,創建了名為Swing的用戶界面庫,這便是Swing的誕生。
但是Swing並沒有完全取代AWT,到目前Java SE 8中依舊有AWT與Swing兩個功能類庫:
- AWT import java.awt (java為核心包)
- Swing import javax.swing (javax包為功能擴展包)
Swing沒有完全取代AWT的原因是:Swing是基於AWT的架構之上,Swing僅僅是提供了能力更強大的用戶界面組件。在Swing編寫的程式中,還是需要AWT進行事件處理。簡單說就是,Swing是用戶界面類,AWT是底層機制。
AWT和Swing中框架和組件類的繼承層次
2.創建JFrame框架
3.在框架中添加文本組件JComponent