1. 程式人生 > >第九章學習筆記

第九章學習筆記

一、教材學習內容(9.元件及事件監聽)

1、java.awt(Java抽象視窗工具包)提供許多用來設計GUI的元件類,java.swing提供用於桌面開發的API。

2、Component類的子類或者間接子類建立的物件被稱為元件,Container的子類或間接子類建立的物件被稱為容器。

特別地,

1)Container提供public方法add(),用於向該物件新增元件。

2)容器物件可以呼叫removeAll()方法移除容器內的所有元件,呼叫remove(Component c)方法可以移除特定的元件。

3)容器本身就是一個元件,可以新增到另一個元件內。

4)每當容器新增新的元件或者移除元件時,應當讓容器呼叫validate()方法,重新整理容器。

3、學習實踐時,應該多檢視Java提供的幫助文件。

4、JFarme的常用方法(我的表格呢?[○・`Д´・ ○]

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

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

public void setBounds(int a,int b,int width,int height) 設定視窗的初始位置以及大小  

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

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

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

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

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

public void setExtendedState(int State)設定視窗的擴充套件狀態,引數取下列常變數    

MAXIMIZED_HORIZ 水平方向最大化  

MAXIMIZED_VERT 垂直方向最大化  

MAXIMIZED_BOTH 水平垂直方向最大化

pubic void setDefaultCloseOperation(int operation) 設定關閉視窗後程序處理,引數取常變數    

DO_NATHING_ON_CLOSE 什麼都不在  

HIDE_ON_CLOSE 隱藏當前視窗  

DISPOSE_ON_CLOSE 隱藏當前視窗,並釋放其資源  

EXIT_ON_CLOSE 結束視窗所在的程序

5、選單條、選單、選單項

1)選單條(JMemubar),通過setJMenuber(JMenubar bar)方法將一個選單條放置到一個視窗中

2)選單(JMenu)

3)選單項(JMenuItem)

4)嵌入子選單(JMenu)JMenu是JMenuItem的子類,因此選單本身也是一個選單項。

5)選單上的圖示可以通過new ImageIcon("a.gif")設定。

6、常用元件與佈局

1)常用元件

JTextField(文字框) 允許使用者在文字框中輸入單行文字
JTextArea(文字區) 允許使用者在文字區中輸入多行文字
JButton(按鈕)

允許使用者單機按鈕

JLable(標籤)

標籤為使用者提供提示資訊

JCheckBox(複選框) 為使用者提供多項選擇
JRadioButton(單項按鈕) 為使用者提供單項選擇(需要將物件併入ButtonGroup組內)
JComboBox(下拉列表) 為使用者提供單項選擇(擁有下拉列表)
JPasswordField(密碼框) 允許使用者在密碼框內輸入單行密碼,且密碼框內預設回顯‘*’

2)常用容器

JPanel面板 預設為flowLayout(流式)佈局,最常用的容器
JTabbedpane選項卡視窗 將選定的元件層疊放入容器
JScrollPane滾動窗格 為元件設定滾動條
JSplitPane拆分窗格 分為水平、垂直拆分
JLayeredPane分層窗格 使用類常量為zuia

 

3)常用佈局

FlowLayout佈局 流式佈局,自左向右居中佈局
CardLayout佈局 卡片佈局,元件按照新增順序設定層級關係
BorderLayout佈局 邊界佈局,使用類常量為元件(也可以是容器)設定初始位置
GridLayout佈局 網式佈局,(一般使用陣列)定義m*n個區域,分別新增元件
null佈局 空佈局,直接設定位置和大小,但不能自適應視窗的大小變化
BoxLayout佈局 盒式佈局,有水平盒與垂直盒兩種heshi

 

7、事件處理的步驟

!addActionListener(ActionListener listen)方法監聽的是事件源(一般是滑鼠動作)。

!事件源觸發ActionEvent時間後,監聽器呼叫actionPerformed(ActionEvent e)對發生的事件作出相應的動作。

!ActionEvent類中的常用方法:
1)public Object getSourse()方法:ActionEvent事件物件呼叫該方法可以獲取發生ActionEvent事件的事件源物件的引用,即getSourse()方法可以將事件源上轉型為Object物件,並返回這個上轉型物件的引用。

2)public String getActionCommand()方法:ActionEvent物件呼叫該方法可以獲取發生ActionEvent事件時,和該事件相關的一個“命令”字串,對於文字框,當發生ActionEvent事件時,預設的“命令”字串是文字框中的文字。

3)public void setCommand()方法:設定觸發事件封裝到事件中的“命令”字串,以改變封裝到事件中的預設“命令”。

8、事件分類

9、視窗的狀態變化可以通過WindowListener介面實現事件的監聽,WindowAdapter介面卡可以代替介面來處理事件。

10、視窗作為監視器能夠讓事件的處理變得更簡單方便,這是因為,監視器可以方便地操作視窗中的其他成員,但是當事件的處理比較複雜時,這樣做也會使得系統缺乏彈性。

11、MVC模式是一種通過3個不同部分構造一個軟體或元件的理想辦法,

1)模型(model)用於儲存事件的物件(我認為是事件監聽的具體處理)

2)檢視(view)為模型提供資料顯示的物件(我認為是基本元件的合集)

3)控制器(controller)處理使用者的互動操作,對使用者的操作作出響應(我認為是事件觸發的媒介,如JButton、Key等)

12、對話方塊JDialog(有模式:程式響應對話方塊內部事件,阻塞其他執行緒的執行)

建立的標準方法public static void showMessageDialog(Component ParentComponent,String message,String title,int messageType)

!其中引數1指定對話方塊的可見時位置(元件),若為null則在螢幕中央顯示。

!其中引數2指定對話方塊上顯示的資訊。

!其中引數3指定對話方塊的標題。

!其中引數4取值是JOptionPane中的常變數,用於控制對話方塊的外觀。

 

1)訊息對話方塊(有模式)

2)輸入對話方塊(有模式)

3)確認對話方塊(有模式)

4)顏色對話方塊(有模式)

5)自定義對話方塊(使用setModel(Boolean b)定義有無模式)

13、樹元件與表格元件

1)樹元件:使用DefaultMutableTreeNode(Object userObject)方法定義結點,並使用add()方法新增子結點;TreeSelectionEven類中的addTreeSelectionListener(TreeSelectionListener Listener)方法獲得監聽器,監聽滑鼠動作(點選樹結點),建立監聽器的類必須實現TreeSelectionListener介面;樹使用getLastSelectedPathComponent()方法獲取選中的結點。

2)表格元件:JTable(int a,int b)建立a行、b列的預設模型表格;JTable(Object data[][],Object columnName[])方法可以獲得一個列名由columnName決定、陣列值由data決定的表格!;當表格需要重新整理顯示時,讓表格呼叫repaint()方法。此處的repaint()方法和繪圖中的同名方法不同!。

 

 

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

暫無

 

三、程式碼除錯過程中的問題

暫無

 

四、學習思考和感悟

暫無