GUI
- AWT (抽象窗口工具集 ) AbstractWindow Toolkit
- 爲簡單的applet程序設計
- AWT沒有提供足夠的桌面端的程序所需的特性
- Swing
- Swing是AWT的擴展和功能加強
- 是構建java圖形界面標準的API
- SWT (Standard Widget Toolkit)
- 是一個開源的GUI編程框架
- SWT是IBM爲它的Eclipse集成開發環境而開發的圖形用戶界面工具
- GUI(Graphics User Interface 圖形用戶界面)編程。
- GUI的各種元素(如:窗口,按鈕,文本框等)由Java 類來實現。
- 使用AWT所涉及的類一般在java.awt包及其子包中。
- Container和Component是AWT中的兩個核心類。
- Component
- Java的圖形用戶界面的最基本組成部分是Component ,Component 類及其子類的對象用來描述以圖形化的方式顯示在屏幕上並能與用戶進行交互的GUI元素,例如,一個按鈕,一個標籤等。
- Container
- Container是Component子類,Container子類對象可以“容納”別的Component對象。
- Container對象可使用方法add(..)向其中添加其他Component對象。
- 有兩種常用的Containter:
- Window: 其對象表示自由停泊的頂級窗口
- Panel: 其對象可作爲容納其它Component對象,但不能獨立存在,必須被添加到其它Containner中(如Window 或 Applet)
- Frame
- Frame是Window的子類,由Frame或其子類創建的對象爲一個窗體。
- Panel
- Panel對象可以看成可以容納Component的空間
- Panel對象可以擁有自己的佈局管理器
- Panel類擁有從其父類繼承來的
- 設定位和大小:setBounds(int x,int y,int width,int height)
- 設置窗體大小:setSize(int width,int height)
- 設置定位定位:setLocation(int x,int y)
- 設置背景顏色:setBackground(Color c)
- 設置佈局方式:setLayout(LayoutManager mgr)
- Awt提供了5種佈局管理器類
- FlowLayout
- 是Panel類的默認佈局管理器。
- 流佈局用於安排有向流中的組件,這非常類似於段落中的文本行。
- BorderLayout
- 這是一個佈置容器的邊框佈局,它可以對容器組件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中。
- 創建按鈕的同時創建佈局方式。
- 示例:getContentPane().add(button,BorderLayout.NORTH);
- GridLayou
- 網格佈局管理器
- CardLayout
- 它將容器中的每個組件看作一張卡片。一次只能看到一張卡片,容器則充當卡片的堆棧。
- GridBagLayout
- 它不要求組件的大小相同便可以將組件垂直、水平或沿它們的基線對齊。每個 GridBagLayout 對象維持一個動態的矩形單元網格,每個組件佔用一個或多個這樣的單元,該單元被稱爲顯示區域。
- FlowLayout
- ActionListener
- 用於接收操作事件的偵聽器接口。
- 對處理操作事件感興趣的類可以實現此接口,而使用該類創建的對象可使用組件的 addActionListener 方法向該組件註冊。在發生操作事件時,調用該對象的 actionPerformed 方法。
- ActionListener使用示例:
-
i1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //具體要使用的方法信息.... } });
-
- 匿名類
- 可以這麼理解,new ActionListener(){} 相當於動態的實現了接口,在內存中建立了一個ActionListener對象,區別就是這個對象的實現類就直接在另一個代碼中定義了,而不是獨立的文件。
- 我們一般稱這種類爲匿名類,當然,匿名類不止實現接口這一種。
- 相當於在內存中直接產生了一個接口的實現並引用這個內存對象。動態的代碼。
- 內部類(嵌套類)
- 用處
- 可以方便的訪問包裝類成員。
- 可以更清楚的組織邏輯,防止不應該被其它類訪問的類進行訪問。
- 何時使用
- 該類不允許或者不需要其它類進行訪問的時候。
- 用處
- 類的訪問修飾符都有幾個?
- public、缺省、protected、private
- 其中protected、private訪問修飾符是在內部類中使用。
- 內部類示例
-
public class Family{ public void m1(){ Boy boy = new Boy(); boy.getMoney(); } //內部類 private class Boy{ public void getMoney(){ System.out.println("$$$$"); } } }
-
- Swing常用組件:
- JTextField
- 是一個輕量級組件,它允許編輯單行文本。
- JPasswordField
- 是一個輕量級組件,允許編輯單行文本,其視圖指示鍵入內容,但不顯示原始字符。
- JButto
- 按鈕
- JRadioButtn
- 實現一個單選按鈕,此按鈕項可被選擇或取消選擇,並可爲用戶顯示其狀態。
- JComboBox
- 將按鈕或可編輯字段與下拉列表組合的組件。用戶可以從下拉列表中選擇值,下拉列表在用戶請求時顯示。
- ButtonGroup
- 此類用於爲一組按鈕創建一個多斥作用域。
- JFileChooser
- 爲用戶選擇文件提供了一種簡單的機制
- 常用方法:showOpenDialog()彈出一個“Open File”文件選擇器的對話框。
- JScrollPane
- 提供輕量級組件的 scrollable 視圖。
- JScrollPane 管理視圖、可選的垂直和水平滾動條以及可選的行和列標題視圖。
- 常用方法:setViewportView(Component view)
- 創建一個視圖(如果有必要)並設置其視圖。
- JTextField
- 常用事件:
- addActionListener接口
- 用於接收操作事件的偵聽器接口。
- KeyListener接口
- 用於接收鍵盤事件(擊鍵)的偵聽器接口。
- 旨在處理鍵盤事件的類要麼實現此接口(及其包含的所有方法),要麼擴展抽象 KeyAdapter 類(僅重寫有用的方法)。
- addActionListener接口