Applet 應用程序
一種能夠在 Web 瀏覽器中執行的小程序,擴展了瀏覽器中的網頁功能。
缺:
一、須要下載 Applet 及其相關文件
二、Applet 的功能是受限制的
優:
三、無需安裝
四、平臺無關性
五、安全
Applet 的生命週期
編寫一個 Applet 程序,須要繼承 JApplet 類,這個類提供了 Applet 程序的基本行爲方式,只須要覆寫其中的方法就能夠完成咱們本身的 Applet 程序。
生命週期
一、初始化階段:init 方法
在 Applet 執行之初,init 方法會自動被調用。init 方法的做用是完成 Applet 的初始化工做。通常,圖形組件的初始化和版面分配都在這個方法中完成。在整個生命週期裏,init 方法只會被調用一次。
二、執行階段:start 方法
在完成初始化後,Applet 就會自動調用 start 方法,執行其中的代碼。與 init 方法不一樣的是,start 方法可能在整個生命週期中會被調用屢次。它不只僅是在 init 方法後被調用,在 Applet 當前窗口被激活時,start 方法也會被調用。
三、停止階段:stop 方法
當不須要 Applet 程序,或者說關閉 Applet 程序的時候,會調用 stop 方法。在 stop 方法中,執行一些清理或者關閉某些耗費資源的操做。在整個生命週期裏,stop 方法只會被調用一次。
四、釋放資源:destroy 方法
在調用 stop 方法後,調用 destroy 方法完成最後的資源釋放等工做。destroy 方法也只會被執行一次。
重量級的圖形開發工具——AWT庫(java.awt包)
java中最先出現的圖形開發工具,但 AWT 不太受人歡迎。
缺點:
一、失去靈活性。大部分組件含有native code代碼。沒法根據須要任意改變組件的外觀,沒法在組件上任意地添加團
二、想要個性化改變 AWT 的控件,須要本身編寫 C 語言的 native code 代碼,沒換一次平臺要重寫和編譯本身的 native code 代碼。
控件說明:
一、容器
二、組件
Label 標籤,用於顯示文本。
Button 按鈕,點擊按鈕,會產生 ActionEvent 事件,利用 ActionListener 接口該事件
TextField 文本輸入框,在這個組件中能夠輸入文本
CheckBox 複選框,提供用戶多項選擇的組件
Choice 下拉式菜單,以菜單的形式提供選擇的組件
......
三、佈局管理器
BoderLayout 將版面分紅五個區域:東、西、南、北、中。能夠將組件放入這五個區域中,但每一個區域只能放入一個組件
FlowLayout 順序橫向擺放組件,若一行沒法擺放全部組件時,下一行接着從左到右的順序加入組件
GridLayout 以行和列的方法排列組件。利用 GridLayout 將版面設置爲幾行和幾列,而後橫向順序加入組件。
CardLayout 將容器垂直分層,每一次只放一個組件,把組件放入不一樣的層並摺疊起來,每次只能看到最上層的組件。
GridBagLayout 最具靈活性,能夠設置組件放置的具體位置和大小。
事件監聽與事件處理:
一、事件
二、事件源
三、事件監聽
捕抓和處理該事件。委託事件模式(Delegation Model),事件源不一樣的事件委託給不一樣的事件監聽類進行監聽和處理。這種委託模式的另外一個特色,就是咱們只須要將感興趣的時間委託給相應的事件監聽類,對於那些不須要關心的事件,咱們不須要作任何事情,包括委託。
讓界面開發更容易——Swing
AWT 沒法知足咱們對圖形化界面設計的發展需求,所以就有了 Swing。Swing 是在 AWT 的基礎上發展起來的,它突破了 AWT 的侷限性,也彌補了 AWT 致命的缺陷,它被設計成一個輕量級的圖形開發工具。
Swing 是個輕量級的圖形開發工具,沒有 native code,也不依賴操做系統。
容器與控件說明
容器:
一、頂層容器
Swing 中的頂層容器包括 JFrame、JApplet、JDialog 和 JWindow。說是頂層的容器,實際上是理解應該是最底層的容器,由於它最接近操做系統。和 Swing 的其餘容器相比,頂層容器的特色就是這些容器並不是輕量級容器,還有必定的 native code,Swing須要這些頂層容器和操做系統進行通信。值得注意的是,和 AWT 容器不一樣,頂層容器中沒法直接加入 JButton 等組件,須要藉助其餘容器加入頂層容器。
二、中間層容器
Swing 的中間層容器都是輕量級,包括 JPanel、JScrollPane、JSplitPane 和 JToolBar 等。這些中間層的容器有着本身的特色。例如,JPnael 支持 double buffering 功能,有利於處理動畫;JScrollPane 支持滾動的窗口;JSplitPane 能將版面劃分爲兩個區域。
三、特殊容器
Swing 中特殊容器包括:JInternalFrame 和 JLayeredPane 等。JInternalFrame 的使用幾乎和 JFrame 同樣,但它是輕量級容器,能夠用來創建虛擬界面; JLayeredPane 是一個分層的容器,其實其餘的容器都是 JLayeredPane 容器中的一層。
Swing 的組件
在 AWT 中有的組件,在 Swing 中都有,只是在名字前多加了J,例如 AWT 中 Button 在 Swing 中爲 JButton。因爲Swing中組件都是輕量級組件,AWT中組件爲重量級,仍是那句話,Swing中組件相比AWT,在各方面都有了極大的改善。
在實現互動組件方面,Swing 中組件包括 JButton、ComboBox、JList、JMenu、JTextArea 和 JTextField等
在顯示方面,實現不可編輯的組件包括 JLabel 和 JProgressBar 等組件;實現可編輯的顯示組件包括 JColorChooser、JFileChoose、JFileChooser 和 JTable 等。
Swing的佈局控制
Swing的事件監聽與事件處理機制
同 AWT 差很少……
上大學那會兒比 較主流的Java圖形開發插件是:Visual Editor 和 SWT Designer, 不久又出了個Jigloo, 但去官網看了下發現這個東西也好久沒有更新了,不過聽說短小精悍,五臟俱全。SWT Designer不久前也被Google收購後從新整合進本身的產品中,而後開源了,如今名字叫:WindowBuilder Pro,看上去界面組件很豐富強大的樣子,支持Swing, AWT, SWT, 以及Google自家的GWT等等。html
目前JAVA圖形界面開發主流工具以下:java
1. WindowBuilder Pro小程序
http://www.eclipse.org/windowbuilder/瀏覽器
https://developers.google.com/java-dev-tools/download-wbpro?hl=zh-CN安全
2. Jigloo(最新版是2010年更新的,看來這個項目如今已經再也不作了)
http://www.cloudgarden.com/jigloo/eclipse
3. 也能夠直接用IDE如:NetBeans或MyEclipse,兩者中都有自帶的圖形開發拖拽工具工具
相關閱讀:
Eclipse進行可視化的GUI開發3大GUI插件
http://www.cnblogs.com/NationWoo/archive/2011/05/31/2065176.html佈局