標籤:eclips 比較 高度 tar 定義 執行個體 常見 add dea
Java不用來寫案頭應用(Eclipse是java寫的),開發網站 圖形介面(用得少) java.awt:用到的圖形類都是依賴系統圖形庫,抽象視窗工具集javax.swing:用到 的圖形類都是sun自己實現的在java中所有的圖形類都被稱為組建類組件(compomet)的類別----------| 容器----------|非容器組件 一、組件1、JFrame架構帶邊界的表單,是一個容器注意 :需要調用setVisible(true)方法後才會顯示架構1、方法
(1)設定JFrame的寬度和高度
java.awt.Window.setSize(int width, int height);
(2)JFrame顯示在螢幕中間,如果 c 為 null,則此視窗將置於螢幕的中央
java.awt.Window.setLocationRelativeTo(Component c);
(3)關閉JFrame程式
javax.swing.JFrame.setDefaultCloseOperation(int operation); // EXIT_ON_CLOSE
(4)添加組件
java.awt.Container.add(Component comp);
2、JDialog 對話方塊
(1)建立對話方塊
JDialog(Dialog owner, String title, boolean modal);
3、JOptionPane 對話方塊(1)訊息對話方塊(2)警告對話方塊(3)錯誤對話方塊(4)輸入對話方塊(5)確認對話方塊
JOptionPane.showMessageDialog(null, "錯誤資訊提示", "標題", JOptionPane.INFORMATION_MESSAGE);
4、面板(Panel)
面板也是一個容器的組件,可以在上面添加
注意:面板不能單獨使用,必須在頂層視窗中使用
5、常用組件
(1)JButtion 普通按鈕
按鈕Button是點擊時觸發動作事件的組件
(2)JRadioButton 選項按鈕
選項按鈕,可以讓使用者從一組選項中選擇一個單一條目(例如性別)
(3)JCheckBox 複選框
(4)JLabel 標籤
(5)JTextField 文本域
(6)JTextArea 文本地區
(7)JComboBox 組合框
(8)JList 列表框
(9)JmenuBar 菜單條
JMenu菜單、JMenultem功能表項目
菜單條(MenuBar)中包含菜單(Menu),菜單中中包含功能表項目(MenuItem),注意添加的順序
二、 布局管理器1、 FlowLayout 流式布局
Jpanel容器預設的布局管理器流式布局,按照組件添加的順序,從左到到右將組件排列在容器中.當放滿一行,就開始新的一行.在FlowLayout有3個常量FlowLayout可以指定組件的對齊
(1)擷取水平間隙
int getHgap() ;
(2)設定水平間隙
void setHgap(int hgap) ;
(3)建立布局管理器
FlowLayout(int align, int hgap, int vgap); // 建立一個新的流布局管理器,它具有指定的對齊以及指定的水平和垂直間隙,預設五個像素
2、GridLayout 網格布局
GridLyaout是以網格形式管理組件的.組件按照他們添加的順序從左至右排列
1、規則:
1.行數和列數可以是0但是不能兩者都為0
2.如果一個為0另外一個不為0,那麼不為0的行或列的大小就是固定的,為0的行或者列有布局管理器動態決定
2、構造方法
GridLayout(int rows, int cols, int hgap, int vgap); // 建立具有指定行數和列數,水平間隔,垂直間隔的網格布局
3、方法
(1)行數
int getRows();
(2)列數
int getColumns() ; // 預設值是1
(3)水平間距
int getHgap() ; // 預設值是0
(4)垂直間距
int getVgap();
set方法設定
3、BorderLayout邊框布局
JFrame 容器預設的布局管理器是邊框布局.該管理器將容器非為東西南北中5個地區.我們使用add(Component,index)方法可以將組件添加進到BorderLayout中,index是一個常量,有5個值
三、Java事件監聽機制1、事件和事件來源
能夠建立一個事件並觸發該事件的組件稱為來源物件(按鈕能夠點擊, 那麼按鈕就是一個來源物件,按鈕被點擊就是一個事件)
一個事件是事件類別的執行個體對象。事件類別的根類是java.util.EventObject
事件對象包含事件相關的屬性,可以使用EventObject類中的執行個體方法getSource獲得事件的來源物件
2、 監聽器
Java中,對象表示的每個事件都是由java.util中EventObject類的子類
3、事件處理
Java對組件都有對應的事件監聽器,和添加事件監聽器方法
4、 視窗事件
Window 對象是一個頂層視窗。視窗(Window)對應的事件叫做視窗事件(WindowEvent),任何視窗(Window)以及視窗的子類都可能觸發視窗事件
(1)Window添加視窗事件(WindowEvent)監聽器的方法
void addWindowListener(WindowListener l) // 添加指定的視窗接聽程式,以從此視窗接收視窗事件
監聽Window視窗事件(WindowEvent)的監聽器:WindowListener
用於接收視窗事件的接聽程式介面。當通過開啟、關閉、啟用或停用、表徵圖化或取消表徵圖化而改變了視窗狀態時,將調用該接聽程式對象中的相關方法
(2)WindowListener介面中定義的方法
1 抽象方法: 2 void windowActivated(WindowEvent e) 3 啟用視窗 4 void windowClosed(WindowEvent e) 5 關閉視窗 6 void windowClosing(WindowEvent e) 7 正在關閉視窗 8 void windowDeactivated(WindowEvent e) 9 變為非使用中視窗10 void windowDeiconified(WindowEvent e) 11 還原視窗 12 void windowIconified(WindowEvent e) 13 已最小化的視窗 14 void windowOpened(WindowEvent e) 15 開啟視窗
5、 監聽器介面適配器
WindowListener介面中的方法都是抽象的,所以即使程式中不想關注某些事件,但是還是要實現所以的方法,比較麻煩,為了方便起見,Java提供了一個針對WindowListener介面的實作類別,該類中把WindowListener介面中的方法全部實現,只不過方法體都為空白
6、滑鼠鍵盤事件
MouseEvent對象捕獲
Java對滑鼠事件提供了MouseListener 監聽器介面,可以監聽滑鼠的按下,釋放,輸入,退出和點擊動作。
按鍵事件可以利用鍵盤來控制和執行一些動作,如果按下、釋放一個鍵就會觸發按鍵事件。KeyEvent對象可以捕獲按鍵的按下放開和敲擊。KeyEvent提供了getkeyChar 來擷取按鍵對應的字元。
char getKeyChar() ; // 返回與此事件中的鍵關聯的字元
Java提供了KeyListener監聽器介面來監聽按鍵事件
1 void keyPressed(KeyEvent e) // 按下某個鍵時調用此方法。 2 void keyReleased(KeyEvent e) // 釋放某個鍵時調用此方法。 3 void keyTyped(KeyEvent e) // 鍵入某個鍵時調用此方法。
一:確定事件來源(容器或組件)
二:註冊監聽器
通過事件來源對象的addXXXListener()方法將監聽器對象註冊到該事件來源上。
三:監聽器對象
註冊監聽器時,需要指定監聽器對象。
以參數的形式進監聽器對象傳遞給addXXXListener()
監聽器對象是XXXListener的子類對象或者XXXAdapter的子類對象。
監聽器對象一般用匿名內部類來表示。(簡化書寫)
在覆蓋方法的時候,方法的參數一般是XXXEvent類型的變數接收。
事件觸發後會把事件打包成對象傳遞給該變數。(其中包括事件來源對象。通過getSource()或者getComponent()擷取。)
四:常見的事件監聽器
WindowListener 主要用於監聽視窗
ActionListener 主要用於用監聽組件對象的單擊動作
MouseListener 滑鼠監聽器
KeyListener 監聽鍵盤
五:常見的事件適配器
WindowAdapter
MouseAdapter
KeyAdapter
9、GUI