跳轉到內容

Swing

50% developed
來自華夏公益教科書


Swing 是 Java 中的一個工具包,它提供了一種構建跨平臺使用者介面的方法。它是建立在 AWT 之上的,被設計為 AWT 的替代品,AWT 是 Java 內建的另一個 UI 工具包。SWT 是您可能聽說過的第三個工具包。SWT 是一個開源工具包,它本身就是一個完整的主題,請參閱 SWT 的主頁 以獲取更多資訊。

圖 10.1:Swing 應用程式示例

Swing[1] 提供了許多控制元件和視窗小部件來構建使用者介面。Swing 類名通常以 J 開頭,例如 JButtonJListJFrame。這主要是為了將它們與 AWT[2] 的對應類區分開來,並且通常是一對一替換。Swing 是基於輕量級元件的概念構建的,而 AWT 和 SWT 的概念是重量級元件。兩者之間的區別在於,輕量級元件使用純 Java 程式碼渲染(繪製),例如 drawLine 和 drawImage,而重量級元件使用本機作業系統來渲染元件。

Swing 中的一些元件實際上是重量級元件。頂級類及其所有派生類都是重量級元件,因為它們擴充套件了 AWT 版本。這是必要的,因為在 UI 的根部,父視窗需要由作業系統提供。這些頂級類包括 JWindowJFrameJDialogJApplet。所有要渲染到螢幕上的 Swing 元件都必須能夠追蹤到一個根視窗或這些類之一。

Note 通常,將重量級元件與輕量級元件混合使用(除了前面提到的情況外)不是一個好主意,因為您會遇到分層問題,例如,應該出現在“頂部”的輕量級元件最終會被重量級元件遮擋。對此的一些例外情況包括使用重量級元件作為根窗格以及用於彈出視窗。一般來說,重量級元件將渲染在輕量級元件之上,並且不會與 Swing 中使用的外觀和風格保持一致。有一些例外情況,但這是一個高階主題。真正喜歡冒險的人可能想要考慮閱讀這篇來自 Sun 的關於混合重量級和輕量級元件的文章:文章

那麼使用 Swing 會給你帶來什麼呢?到目前為止,我們只討論了元件和渲染。首先,你會得到以下內容。

  • 控制元件:按鈕、複選框、列表、樹、表格、組合框(下拉列表)、選單、文字欄位
  • 顯示:標籤、進度條、圖示、工具提示
  • 可插拔外觀和風格 (PLAF):Windows、CDE/Motif、Mac。允許在不更改任何程式碼的情況下“美化”應用程式
Note 由於 Sun、微軟和蘋果之間的法律問題,您只能在 Windows 上使用 Windows 外觀和風格 (LAF),在蘋果電腦上使用 Mac LAF
  • 標準頂級視窗:視窗、框架、對話方塊等。
  • 事件監聽器 API
  • 鍵繫結和助記符:允許將鍵擊對映到特定操作。
  1. Swing 也被錯誤地稱為 JFC(Java 基礎類),但是 JFC 包括除 Swing 之外的 API,例如 Java 2D 和拖放 API。
  2. AWT 是抽象視窗工具包,其中元件由本機作業系統渲染
[編輯 | 編輯原始碼]


華夏公益教科書