跳轉到內容

Swing

50% developed
來自 Wikibooks,開放世界中的開放書籍


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),在 Apple 計算機上使用 Mac LAF
  • 標準頂級視窗:視窗、框架、對話方塊等
  • 事件監聽器 API
  • 鍵繫結和助記符:允許將按鍵對映到特定操作。
  1. Swing 也被錯誤地稱為 JFC(Java 基礎類),但是 JFC 除了 Swing 之外還包括 API,例如 Java 2D 和拖放 API。
  2. AWT 是抽象視窗工具包,其中元件由本地作業系統渲染
[編輯 | 編輯原始碼]


華夏公益教科書