国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JAVA教程 第七講 Swing用戶界面設計

2019-11-18 11:16:58
字體:
來源:轉載
供稿:網友

7.1 Swing簡介

7.1.1 簡介

  第五講中我們學習了AWT,AWT是Swing的基礎。Swing的產生主要原因就是AWT不能滿足圖形化用戶界面發展的需要。
AWT設計的初衷是支持開發小應用程序的簡單用戶界面。例如AWT缺少剪貼板、打印支持、鍵盤導航等特性,而且原來的AWT甚至不包括彈出式菜單或滾動窗格等基本元素。

  此外AWT還存在著嚴重的缺陷,人們使AWT適應基于繼續的、具有很大伸縮性的事件模型,基于同位體的體系結構也成為其致命的弱點。

  隨著發展的需要,Swing出現了,Swing組件幾乎都是輕量組件,與重量組件相比,沒有本地的對等組件,不像重量組件要在它們自己的本地不透明窗體中繪制,輕量組件在它們的重量組件的窗口中繪制。

  這一講我們講一下基本的Swing組件使用方法和使用Swing組件創建用戶界面的初步方法。

  Swing是由100%純java實現的,Swing組件是用Java實現的輕量級( light-weight)組件,沒有本地代碼,不依靠操作系統的支持,這是它與AWT組件的最大區別。由于AWT組件通過與具體平臺相關的對等類(Peer)實現,因此Swing比AWT組件具有更強的實用性。Swing在不同的平臺上表現一致,并且有能力提供本地窗口系統不支持的其它特性。

  Swing采用了一種MVC的設計范式,即"模型-視圖-控制"(Model-View-Controller),其中模型用來保存內容,視圖用來顯示內容,控制器用來控制用戶輸入。

  Swing外觀感覺采用可插入的外觀感覺(Pluggable Look and Feel,PL&F)

  在AWT組件中,由于控制組件外觀的對等類與具體平臺相關,使得AWT組件總是只有與本機相關的外觀。Swing使得程序在一個平臺上運行時能夠有不同的外觀。用戶可以選擇自己習慣的外觀。以下三幅圖是在同一個操作系統下得到不同的外觀。

Metal風格 


Motif風格
 

Windows風格

7.1.2 Swing的類層次結構

  在javax.swing包中,定義了兩種類型的組件:頂層容器(JFrame,JApplet,JDialog和JWindow)和輕量級組件。Swing組件都是AWT的Container類的直接子類和間接子類。

  java.awt.Component
    -java.awt.Container
       -java.awt.Window
          -java.awt.Frame-javax.swing.JFrame
          -javax.Dialog-javax.swing.JDialog
          -javax.swing.JWindow
       -java.awt.Applet-javax.swing.JApplet
       -javax.swing.Box
       -javax.swing.Jcomponet

  Swing包是JFC(Java Foundation Classes)的一部分,由許多包組成,如下表:

              描述  Com.sum.swing.plaf.motif用戶界面代表類,它們實現Motif界面樣式  Com.sum.java.swing.plaf.windows用戶界面代表類,它們實現Windows界面樣式  Javax.swing  Swing組件和使用工具  Javax.swing.border   Swing輕量組件的邊框  Javax.swing.colorchooser  JcolorChooser的支持類/接口  Javax.swing.event  事件和偵聽器類  Javax.swing.filechooser  JFileChooser的支持類/接口  Javax.swing.pending  未完全實現的Swing組件  Javax.swing.plaf  抽象類,定義UI代表的行為  Javax.swing.plaf.basic  實現所有標準界面樣式公共功能的基類  Javax.swing.plaf.metal用戶界面代表類,它們實現Metal界面樣式  Javax.swing.table  Jtable組件  Javax.swing.text  支持文檔的顯示和編輯  Javax.swing.text.Html  支持顯示和編輯HTML文檔  Javax.swing.text.html.parser  Html文檔的分析器  Javax.swing.text.rtf  支持顯示和編輯RTF文件  Javax.swing.tree  Jtree組件的支持類  Javax.swing.undo  支持取消操作


  (在jdk1.3中,第一、第二和pending包沒有了,增加了plaf.multi包,主要功能:給缺省的L&F加上附加的L&F,例如一個MultiButtonUI實例可以同時處理MotifButtonUI和AudioButtonUI.)

  swing包是Swing提供的最大包,它包含將近100個類和25個接口,幾乎所有的Swing組件都在swing包中,只有JtableHeader和   JtextComponent是例外,它們分別在swing.table和swing.text中。
  swing.border包中定義了事件和事件監聽器類,與AWT的event包類似。它們都包括事件類和監聽器接口。
  swing.pending包包含了沒有完全實現的Swing組件。
  swing.table包中主要包括了表格組建(JTable)的支持類。
  swing.tree同樣是JTree的支持類。
  swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf都是用于顯示和編輯文檔的包。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵山县| 延庆县| 开阳县| 呼伦贝尔市| 九江县| 甘南县| 汉中市| 邵东县| 师宗县| 茶陵县| 金塔县| 浑源县| 琼海市| 庆阳市| 玉环县| 务川| 龙海市| 广水市| 客服| 壤塘县| 宝应县| 老河口市| 和田县| 孟村| 顺昌县| 呼玛县| 雅江县| 文水县| 靖边县| 哈尔滨市| 兴义市| 广南县| 南和县| 龙山县| 堆龙德庆县| 新野县| 新干县| 成安县| 景德镇市| 河西区| 衡南县|