1. 程式人生 > >JAVA第八週學習總結

JAVA第八週學習總結

201711671102 曾燃亮 《java程式設計》第8周學習總結

教材學習內容總結

第九章 元件及事件處理

一.Java Swing概述

java的java.awt包,即java的抽象視窗工具包提供了許多用來設計GUI的元件類。

學習GUI程式設計時,要掌握理解兩個概念:容器類(Container)和元件類(Component)。

javax.swing包中JComponent類是java.awt包中Container類的一個直接子類,是java.awt包中Component類的一個間接子類。

1)java把Component類的子類或間接子類建立的物件為一個元件

2)java把Container的子類或間接子類建立的物件稱為一個容器

3)可以向容器中新增元件。add()

4)容器呼叫removeAll()方法可以移掉容器中的全部元件,呼叫remove(Component c)方法可以移掉容器中引數c指定的元件

5)容器本身也是一個元件,所以可以把容器新增到另一個容器中實現容器的巢狀

6)每當容器新增或移掉元件時,應讓容器呼叫validate( )方法,以保證容器能正確顯示出來

二.視窗

java提供的JFrame類的例項就是一個底層容器,即視窗

Jframe類是Comtainer類的間接子類

視窗被預設為系統新增到顯示螢幕上,因此不允許將一個視窗新增到另一個容器中

1.JFrame常用方法

JFrame()建立一個無標題的視窗

JFrame(String  s)建立標題為s的視窗

public void setBounds(int a,int b,int width,int height)設定視窗的初始位置(a,b),寬width高height

public void setSize(int width,int height)設定視窗的大小

public void setLocation(int x,int y)設定視窗的位置,預設(0,0)

public void setVisible(boolean b)設定視窗是否可見,預設不可見

public void setResizabke(boolean b)設定視窗是否可調整大小,預設可以調整

public void dispose()撤銷當前視窗,並釋放當前視窗所有的資源

public void setExtendedState(int state)設定視窗的擴充套件狀態,其中state取JFrame類中的下列常量:

    MAXIMIZED_HORIZ(水平方向最大化)

    MAXIMIZED_VERT(垂直方向最大化)

    MAXIMIZED_BOTH(水平,垂直方向最大化)

public void setDefaultCloseOperation(int opreation)該方法用來設定單擊視窗右上角的關閉圖示,程式根據引數operation取值做出不同處理:

   DO_NOTHING_NO_CLOSE(什麼也不做)

   HIDE_ON_CLOSE(隱藏視窗)

   DISPOSE_ON_CLOSE(隱藏當前視窗,並釋放窗口占有的其他資源)

   EXIT_ON_CLOSE(結束視窗所在應用程式)

2.選單條,選單,選單項

選單條

setJMenuBar(JMenuBar bar);

該方法將選單新增到視窗的頂端,需要注意的是,只能向視窗新增一個選單條

選單

JComponent類的子類JMenu的例項就是一個選單

選單項

JComponent類的子類JMenuItem的例項就是一個選單項

嵌入子選單

選單中新增選單

選單上的圖示

Icon icon=new ImageIcon("a.gif");

三.常用元件與佈局

1.常用元件

JTextField(文字框)

JTextArea(文字區)

JButton(按鈕)

JLable(標籤)

JCheckBox(複選框)

JRadioButton(單選按鈕)

JComboBox(下拉列表)

JPasswordField(密碼框)

2.常用容器

1)JPanel面板

預設佈局是FlowLayout佈局(居中)

2)JTabbedPane選項卡窗格

3)滾動窗格JScrollPane

4)拆分窗格JSplitPane

5)JLayeredPane分層窗格

3.常用佈局

1)FLowLayout佈局

2)BorderLayout佈局(東南西北中佈局)

3)CardLayout佈局

4)GridLayout佈局(網格佈局)

5)null佈局(空佈局)

6)BoxLayout佈局(盒式佈局)

四. 處理事件

1.事件處理模式

1)事件源

能產生事件的物件都可以稱為事件源,如文字框、按鈕、下拉列表等。

2)監視器

事件源通過呼叫相應的方法將某個物件註冊為自己的監視器。

3)處理事件的介面

2.ActionEvent事件

1)ActionEvent事件源

文字框、按鈕、選單項、密碼框和單選按鈕都可觸發

2)註冊監視器

addActionListener(ActionListener listen)

3)ActionListener介面

該介面只有一個方法public void actionPerformed(ActionEvent e)

4)ActionEvent類中的方法

3.ItemEvent事件

1)事件源

選擇框,下拉列表都可以觸發

2)註冊監視器

addItemListener(ItemListener listen)

3)ItemListener介面

只有一個方法public void itemStateChanged(ItemEvent e)

4.DocumentEvent事件

1)事件源

文字區

2)註冊監視器

addDocumentListener(DocumentListener listener)

3)DocumentListener介面

有三個方法

public void changedUpdate(DocumentEvent e)

public void removeUpdate(DocumentEvent e)

public void insertUpdate(DocumentEvent e)

5.MouseEvent事件

P244

6.焦點事件

7.鍵盤事件

8.視窗事件

9.匿名類例項或視窗做監視器

1)匿名類例項做監視器

2)視窗做監視器

10.事件總結

1)授權模式

即事件源呼叫方法將某個物件註冊為自己的監視器

2)介面回撥

就像上轉型物件

3)方法繫結

4)保持鬆耦合

五.使用MVC結構

模型-檢視-控制器(MVC)

模型  用於儲存資料的物件

檢視  為模型提供資料顯示物件

控制器  處理使用者的互動操作

六.對話方塊

對話方塊分為無模式和有模式兩種

有模式:當這個對話方塊啟用時,只能讓程式響應對話方塊內部的事件,而且將阻塞其他執行緒的執行,使用者不能再啟用對話方塊所在程式的其他視窗,直到對話方塊結束。

無模式的對話方塊處於啟用時,也可以啟用其他視窗,也不阻塞其他執行緒的執行

1.訊息對話方塊

訊息對話方塊是有模式的對話方塊

就是彈出一個警告的對話方塊

2.輸入對話方塊

JOptionPane類的靜態方法

showInputDialog()

3.確認對話方塊

JOptionPane類的靜態方法

showConfirDialog()

4.顏色對話方塊

JColorChooser類的靜態方法

showDialog()

5.自定義對話方塊

就是自定義

七.樹元件與表格元件

1.陣列件

1)DefaultMutableTreeNode結點

DefaultMutableTreeNode類是實現了MutableTreeNode介面的類

DefaultMutableTreeNode類兩個常用的構造方法:

   DefaultMutableTreeNode( Object userObject)

   DefaultMutableTreeNode(Object userObject,boolean allowChildren)

第一個方法建立的有預設的子節點,即可以使用add()新增其他結點作為它的子節點

2)樹上的TreeSelectionEvent事件

2.表格元件

八.按鈕繫結到鍵盤

九.列印元件

十.釋出GUI程式

1.首先用文字編輯器編寫一個清單檔案

2.生成JAR

十一.應用舉例

華容道

教材學習中的問題和解決過程

loading。。。。。

程式碼除錯中的問題和解決過程

loading。。。。。

感悟

元件與事件是一個難題!慢慢消化

目標:5000行

第一週:35行

第二週:70行

第三、四周:200行

第五週:640行

第六週:150行

第七週:200行

第八週:300行