圖形化員工信息管理系統(tǒng)資料_第1頁
圖形化員工信息管理系統(tǒng)資料_第2頁
圖形化員工信息管理系統(tǒng)資料_第3頁
圖形化員工信息管理系統(tǒng)資料_第4頁
圖形化員工信息管理系統(tǒng)資料_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、圖形化員工(yungng)信息管理系統(tǒng)共五十三頁任務(wù)(rn wu)預(yù)覽在本章,我們(w men)將學(xué)習(xí)Java圖形化程序設(shè)計。并將我們前面的員工管理系統(tǒng)員工的信息輸入改為圖形的方式。大致效果如圖6-1所示。共五十三頁AWT和Swing簡介(jin ji)第一代圖形用戶界面AWT(Abstract Window Toolkit) 提供了基本的圖形用戶界面。AWT的特點是簡單 、穩(wěn)定、重量級(依賴本地平臺),AWT涉及的類都在java.awt包及其子包中。SwingGUI 組件是Java 提供的第二代圖形用戶界面,該組件不含任何與平臺有關(guān)的本地代碼。Swing 組件的這個特點使得基于Swing 組

2、件的圖形界面程序具有良好(lingho)的跨平臺性能。此外,即使最簡單的Swing 組件也提供了比AWT 組件更強的功能。共五十三頁Swing的容器(rngq)容器類組件式用來包含其他(qt)組件的。JComponent是所有Swing組件的超類。Swing中的容器類繼承自AWT的頂層容器類Window。常用的Swing容器類有JFrame、JPanel、JAplplet等。Swing的常用組件有JButton、JTextField、JTextArea、JLabel等。共五十三頁JFrame類JFrame框架是容器之一,按鈕、標(biāo)簽等組件都可以加載到框架上面去。Frame類的常見構(gòu)造方法JFra

3、me frame = new JFrame(); /創(chuàng)建一個沒有標(biāo)題的frameJFrame frame = new JFrame(test); /創(chuàng)建一個標(biāo)題為test的farmeJFrame常用的方法(fngf)void getTitle(); / 返回Frame 的標(biāo)題;String setTitle(String title); / 設(shè)置框架的標(biāo)題為title;Container getContentPane(); / 返回框架所對應(yīng)的容器,類型為Container;void setSize(int w, int h); / 設(shè)置框架的寬和高;共五十三頁JDialog對話框JDialo

4、g類是對話框類,類似JFrame,對話框也是有邊框、有標(biāo)題的底層容器。但是在程序(chngx)中,對話框一般不單獨使用,常常依附于別的容器(如JFrame)對話框分為模式和非模式兩種,模式對話框是打開之后必須響應(yīng)的對話框,它的出現(xiàn)會阻塞其他線程的運行,因此在打開模式對話框之后就不能操控程序中的其它窗口,必須要將模式對話框關(guān)閉之后才行。JDialog主要有以下幾種構(gòu)造方法JDialog(Frame owner); /構(gòu)造指定所有者的非模式對話框JDialog(Frame owner, boolean modal); /構(gòu)造指定所有者和模式的對話框。如果參數(shù)modal為true,則為模式對話框JD

5、ialog(Frame owner, String title); /構(gòu)造指定所有者和標(biāo)題的非模式對話框JDialog(Frame owner, String title, boolean modal); /構(gòu)造指定所有者、標(biāo)題和模式的對話框共五十三頁JDialog對話框在Java1.5版本之后,提供和以下的兩個方法來設(shè)置和獲取對話框的模式void setModality(Dialog.ModalityType type); /設(shè)置對話框的模式Dialog.ModalityType getModality(); /獲取對話框的模式對話框的模式類型取自下面(xi mian)的4個枚舉類型MODE

6、LESS: 無模式,對話框不阻塞任何窗口APPLICATION_MODAL:應(yīng)用程序模式,對話框阻塞同給一個Java應(yīng)用程序中的所有窗口DOCUMENT_MODAL:文檔模式,對話框阻塞同一文檔的所有窗口TOOLKIT_MODAL:工具包模式,對話框阻塞用一工具包運行的所有窗口共五十三頁面板(min bn)JPanel類面板用來組織框架窗口中組件的布局,是各種組件的底板。我們先將組件放在面板上,然后再將面案放在框架中。JPanel不能獨立存在,必須依賴于其它的容器,一個面板可以有自己的布局管理器。JPanel主要有以下兩個構(gòu)造方法JPanel panel = new JPanel();JPan

7、el panel = new JPanel(LayoutManager layout); /為JPanel指定(zhdng)布局管理器JPanel常用的方法主要有void setLayout (Layout layout) /設(shè)置JPanel 的布局管理器;void add(Component c) /在面板中添加容器組件;void setToolTipText(String text) /設(shè)置面板的工具提示;void setSize(int w, int h) /設(shè)置面板的寬和高。共五十三頁JButton按鈕類JButton 是一個按鈕工具,通常用來觸發(fā)某個事件的發(fā)生,提供“按下并動作(dn

8、gzu)”的基本用戶界面。例如,單擊“退出”按鈕退出程序等。JButton類主要有一下幾種構(gòu)造方法JButton(); / 構(gòu)造一個沒有文本的按鈕JButton(Icon icon); / 構(gòu)造一個帶圖標(biāo)的按鈕JButton(String text); / 構(gòu)造帶文本的按鈕JButton(String text, Icon icon); / 構(gòu)造帶文本和圖標(biāo)的按鈕JButton常用的方法有以下幾種void addActionListener(ActionListener listener); /添加動作事件監(jiān)聽器,以響應(yīng)按鈕的動作事件getActionCommand(); /返回由該按鈕發(fā)出的

9、action事件的命令名稱 setActionCommand(String actionCommand); /將該按鈕發(fā)出的action事件的命令名稱設(shè)置為指定的字符串共五十三頁JLabel標(biāo)簽(bioqin)類一個標(biāo)簽類對象顯示一行靜態(tài)文本。程序可以改變標(biāo)簽的內(nèi)容,但用戶不能改變。標(biāo)簽起到信息說明的作用,每個標(biāo)簽用JLabel 類的一個對象表示。標(biāo)簽沒有任何特殊的邊框和裝飾。JLabel標(biāo)簽還可以顯示圖標(biāo)。JLabel類的有以下幾種構(gòu)造函數(shù)JLabel(); /構(gòu)造沒有文字的標(biāo)簽JLabel(String text); /構(gòu)造顯示指定文本的標(biāo)簽JLabel(Icon icon); /構(gòu)造顯示

10、指定圖標(biāo)的標(biāo)簽JLabel(String text, Icon icon, int positonAlignment); /構(gòu)造指定文本、圖標(biāo)和水平對齊方式(fngsh)的標(biāo)簽JLabel常用的方法有String getText(); / 返回標(biāo)簽的文本void setText(String text); / 設(shè)置標(biāo)簽的文本為textvoid setIcon(Icon icon); / 設(shè)置標(biāo)簽的圖標(biāo)Icon getIcon(); / 返回標(biāo)簽的圖標(biāo)void setFont(Font font); / 設(shè)置標(biāo)簽的字體Font getFont(); / 返回標(biāo)簽的字體共五十三頁文本框(JText

11、Field類)單行文本框JTextField 既可以用于顯示輸出(shch)信息,又可以用于接收輸入信息,主要用于編輯文本。JTextField有一下幾種構(gòu)造函數(shù)JTextField (); / 創(chuàng)建一個空的文本框。JTextField (String text); / 創(chuàng)建一個指定text 字符串的文本框。JTextField (int column); / 創(chuàng)建一個指定column 字符寬度的文本框。JTextField (String text, int column); / 創(chuàng)建一個指定text字符串和column字符寬度的 單行文本框JTextField常用的方法有String ge

12、tText(); / 返回單行文本框的內(nèi)容;void setText(String text); / 設(shè)置單行文本框的文本為text;void setEditable(boolean b); / 設(shè)置單行文本框的內(nèi)容是否可編輯;boolean isEditable(); / 返回該文本框是否可編輯;String getSelectedText(); /返回該文本框中選中的文本String getSelectionStart(); /返回該文本框選中的文本的起始位置String getSelectionEnd(); /返回該文本框選中的文本的結(jié)束位置共五十三頁多行文本框(JTextArea類)J

13、TextArea 實現(xiàn)了可以處理多行文本信息的文本框。JTextArea 提供了比較豐富的成員方法,可以對輸入的文本內(nèi)容進(jìn)行編輯。但JTextArea 不能自動進(jìn)行滾屏處理,即當(dāng)文本內(nèi)容超出(choch)了JTextArea 指定的區(qū)域,文本框也不會自動出現(xiàn)滾動條。要實現(xiàn)自動加滾動條的功能就需要使用JScrollPane。JTextArea有以下幾種構(gòu)造方法JTextArea (); /創(chuàng)建一個空的、系統(tǒng)默認(rèn)大小的文本區(qū)JTextArea (String text); /創(chuàng)建一個指定text 字符串的文本區(qū)JTextArea (int row, int col); /創(chuàng)建一個指定行數(shù)和列數(shù)的文

14、本區(qū)JTextArea (String text, int row, int col); /創(chuàng)建一個指定行數(shù)和列數(shù),并包含指定字符 內(nèi)容的文本區(qū)JTextArea的常用的方法有void append(String text); /在當(dāng)前文本區(qū)的基礎(chǔ)上添加指定的字符串int getColumns(); /返回該文本區(qū)中列的數(shù)目int getRows(); /返回該文本區(qū)中行的數(shù)目JTextArea文本區(qū)沒有滾動條,如果需要滾動條,可以在文本區(qū)中插入一個JScrollPane中。JTextArea textArea = new JTextArea(8, 40);JScrollPane scroll

15、Pane = new JScrollPane(textArea);共五十三頁密碼(m m)框JPasswordField類JPasswordField 類與JTextField 類一樣可以用來接受單行文本的輸入。采用JTextField,則在文本框中可以直接看到輸入的字符;采用JPasswordField,則輸入的字符在文本框中表示成“*”。JPassWordField有以下幾種構(gòu)造方法JPasswordField(); /構(gòu)造一個密碼框JPasswordField(int columns); /構(gòu)造一個指定列數(shù)的密碼框JPasswordField常用的方法(fngf)有void setEch

16、oChar(char c); /設(shè)置密碼框的回顯字符char getPassowrd(); /獲取密碼框字符,并存放在一個字符數(shù)組中默認(rèn)情況下,JPasswordField中是禁止中文輸入法的。如果需要輸入中文字符密碼,則要調(diào)用密碼框從Component類繼承來的方法enableInputMethods(true)。共五十三頁JTable表格(biog)控件JTable控件用于顯示二維表格。JTable并不自己存儲數(shù)據(jù),而是從一個表格模型中獲取它的數(shù)據(jù)。JTable類有一個構(gòu)造器能夠(nnggu)將一個二維的對象數(shù)據(jù)包裝進(jìn)一個默認(rèn)的模型中。這樣我們可以不用表格默認(rèn)就可以創(chuàng)建一個簡單的表格了。表

17、格中的數(shù)據(jù)是以O(shè)bject值的二維數(shù)組的形式來存儲private Object data = 10001, 張三, 3000, 10002, 李四, 4000, ;共五十三頁JTable表格(biog)控件可以使用(shyng)一個單獨的字符串?dāng)?shù)組來提供列名:String columnNames = ID, Name, Salary;與JTextArea一樣,JTable也不帶滾動條,如果需要添加滾動條,可以將table插入到一個JScrollPane中String columnNames = ID, Name, Salary;JScrollPane scrollPane = new JScr

18、ollPane(table);從Java5.0起,可以使用JTable的print豐富對表格進(jìn)行打印了:table.print();共五十三頁表格(biog)模型在前面的例子中,表格的對象呈現(xiàn)是存儲在一個二維數(shù)組中的。不過,我們通常(tngchng)不會在自己的代碼中使用這種策略,我們通過會對一個表格進(jìn)行動態(tài)的插入或刪除,然后再在表格中更新顯示,這樣可以考慮實現(xiàn)自己的表格模型。表格模型的實現(xiàn)非常的簡單,因為你可以充分利用AbstractTableModel類,它實現(xiàn)了大部分必須的方法。你僅僅需要提供下面的三個方法的實現(xiàn)即可:public int getRowCount();public int

19、 getColumnCount();public Object getValueAt(int row, int column);實現(xiàn)getValueAt方法有很多途徑:可以直接計算結(jié)果,或者從一個數(shù)據(jù)庫或其他的存儲庫中查詢某個值。getRowCount和getColumnCount方法用于返回表格的行數(shù)和列數(shù)。共五十三頁文件(wnjin)對話框是Swing提供了JFileChooser類,它可以(ky)顯示一個文件對話框,它與本地應(yīng)用程序中使用的文件對話框基本一致。JFileChooser是一個模式對話框。共五十三頁文件(wnjin)對話框下面是建立文件對話框并獲取用戶選擇信息的步驟:建立一個

20、JFileChooser對象。與JDialog類的構(gòu)造不同,它不需要指定父類的組件(z jin)。允許在多個框架中重用一個文件選擇器。JFileChooser chooser = new JFileChooser();調(diào)用setCurrentDirectory()方法設(shè)置當(dāng)前目錄.例如使用當(dāng)前的工作目錄chooser.setCurrentDirectory(new File(.);如果希望用戶選擇默認(rèn)文件名,可以使用setSelectedFile方法進(jìn)行指定chooser.setSelectedFile(new File(filename);如果允許用戶在對話框中選擇多個文件,需要調(diào)用setM

21、utilSelectionEnable方法,這是可選的。chooser.setMutilSelectionEnable(true);使用getSelectedFile()或者gegtSelectedFiles()方法來獲得選擇的一個或多個文件。這些方法將返回一個File對象或者一組File對象。String filename = chooser.getSelectedFile().getPath();共五十三頁JCheckBox復(fù)選框類復(fù)選框可以讓用戶做出多個選擇,它有兩種狀態(tài),分別為“開”和“關(guān)”,可以用true(選中)和false(沒選中)來表示。JCheckBox的構(gòu)造函數(shù)有以下幾種JC

22、heckBox(); /構(gòu)造一個復(fù)選框JCheckBox(String text); /構(gòu)造帶文本的復(fù)選框JCheckBox(String text, boolean selected); /構(gòu)造帶文本和選擇狀態(tài)的復(fù)選框JCheckBox(Icon icon); /構(gòu)造一個帶圖標(biāo)的復(fù)選框JCheckBox(String text, Icon icon, boolean selected); /構(gòu)造一個帶文本和圖標(biāo)和選擇狀態(tài)的復(fù)選框JCheckBox的常用(chn yn)的方法主要有String getText(); /獲取該復(fù)選框的標(biāo)簽;void setText (String text);

23、/設(shè)置該復(fù)選框的標(biāo)簽為text;boolean isSelected (); /獲取該復(fù)選框是否選中;void setSelected (boolean selected); /設(shè)置該復(fù)選框的選擇狀態(tài),由參數(shù)selected 決定;共五十三頁JRadioButton單選按鈕和ButtonGroup按鈕組如果程序提供給用戶幾種選擇,但只允許用戶選擇其中一種(通常必須選擇一種),則可以采用單選按鈕JRadioButton。JRadioButton 用于接收用戶的單選輸入。按鈕組組件ButtonGroup與JRadioButton 配合使用,建立多個單選按鈕之間的這種單選關(guān)系。ButtonGroup

24、類的常用方法有ButtonGroup(); /構(gòu)造(guzo)按鈕組對象(只有這一個構(gòu)造方法)void add(AbstractButton button); /向按鈕組添加按鈕void clearSelection(); /清除按鈕組中按鈕的選中狀態(tài),這時所有的按鈕均處于未選狀態(tài)int getButtonCount(); /返回按鈕組的按鈕個數(shù)void remove(AbstractButton button); /將按鈕button從按鈕組中移除共五十三頁組合(zh)列表JComboBox類組合列表框(JComboBox)有時也稱為下拉框??梢詮乃南吕降牧斜砜蛑羞x擇列表項目。JComb

25、oBox類常用的方法有JComboBox(); /創(chuàng)建一個下拉列表類void addItem(Object obj) /*向組合框添加一個項目(必須是Object類型或其子類,不能是基本數(shù)據(jù)類型,如int,double。但是可以使Integer,Double)*/Object getItemAt (int index) /獲取組合框的第index 項int getItemCount () /返回組合框的項目數(shù)量(shling)int getSelectedIndex() /返回組合框選中項目的下標(biāo)Object getSelectedItem() /返回組合框的選中項目void removeIt

26、emAt (int index) /刪除組合框中的第index 項void removeAllItems() /刪除組合框的所有項目void removeItem (Object obj) /刪除組合框指定內(nèi)容共五十三頁滾動條JScrollBar類滾動條是非常簡單而常用的控件。它一般有兩個作用:一是作為滑塊使用,用來(yn li)代表的數(shù)據(jù)完成某些操作;另一方面是用來(yn li)實現(xiàn)窗口的滾動。JScrollBar的構(gòu)造函數(shù)為:JScrollBar(int orientation, int value, int extent, int min, int max)orientation:滾動條

27、方向:JScrollBar.HORIZONTAL 代表水平,JScrollBar.VERTICAL 代表垂直。value:滑塊初始位置:為整數(shù)。extent:滑塊尺寸:一般為1。min:滾動槽最小值:為整數(shù)。max:滾動槽最大值:為整數(shù)。共五十三頁布局(bj)管理器在Java 的GUI 界面設(shè)計中,布局控制是一個相當(dāng)重要的環(huán)節(jié)。將一個組件加入容器中時,布局控制決定了所加入的組件的大小和位置。而布局管理器能自動(zdng)設(shè)定容器中的組件的大小和位置,當(dāng)容器改變大小時,布局管理器能自動(zdng)地改變其中組件的大小和位置。Java中常用的布局有FlowLayout、BorderLayout、C

28、ardLayout、GridLayout、BoxLayout 和GridBagLayout等。布局管理器LayoutManager是接口,F(xiàn)lowLayout、BorderLayout、CardLayout等是布局類,他們都實現(xiàn)了LayoutManager接口。容器一般是有默認(rèn)布局的,如JFrame窗框的默認(rèn)布局shiite邊框布局(BorderLayout)JPanel面板的默認(rèn)布局是流布局(FlowLayout)。容器可以執(zhí)行下面的方法設(shè)置或更改布局。容器對象.setLayout(布局對象);共五十三頁FlowLayout流布局(bj)FlowLayout 對應(yīng)的布局策略(cl)非常簡單。

29、這種策略(cl)配置組件的方式是:組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列,每一行中的組件都居中排列。在組件不多時,使用這種策略(cl)非常方便,但是當(dāng)容器內(nèi)的GUI元素增加時,就顯得高低參差不齊。FlowLayout有CENTER、LEFT 和RIGHT3 個屬性用于控制每一行的組件對齊方式。FlowLayout的構(gòu)造方法有:FlowLayout(); /構(gòu)造一個流布局,默認(rèn)是居中對齊,水平和垂直的間隙為5像素FlowLayout(int align); /構(gòu)造指定對齊方式的流布局對齊方式的參數(shù)取自靜態(tài)常量字段LEFT、CENTER(默認(rèn))或RIGHT等,

30、這些常量均可以用FlowLayout作為前綴引用,如FlowLayout.LEFT。FlowLayout(int align, int hgap, int vgap); /構(gòu)造指定對齊方式、水平和垂直間隙的流布局。共五十三頁FlowLayout流布局(bj)共五十三頁BorderLayout邊框(binkung)布局BorderLayout 也是一種簡單的布局管理策略。它把容器內(nèi)的空間劃分成5 個明顯的區(qū)域:東、南、西、北、中。北占據(jù)容器的上方,東占據(jù)容器的右側(cè),南占據(jù)容器的下方,西占據(jù)容器的左側(cè)。中間(zhngjin)區(qū)域是東、南、西、北都填滿后剩下的區(qū)域。BorderLayout 類提供了

31、EAST、WEST、SOUTH、NORTH 和CENTER 共5 個屬性值代表東、西、南、北和中位置。BorderLayout的構(gòu)造方法有:BorderLayout(); / 構(gòu)造一個邊框布局BorderLayout(int hgap, int vgap); / 構(gòu)造一個指定水平和垂直間隙的邊框布局共五十三頁BorderLayout邊框(binkung)布局共五十三頁GridLayout網(wǎng)格(wn )布局GridLayout 布局方式可以(ky)使容器中的各組件呈網(wǎng)格狀分布。容器中各組件的高度和寬度相等,當(dāng)容器的尺寸發(fā)生變化時,各組件的相對位置不變,但各自的尺寸會發(fā)生變化。各組件的排列方式為:

32、從上到下、從左到右。GridLayout網(wǎng)格布局的構(gòu)造方法有GridLayout (); /構(gòu)造一個GridLayout 布局,每行一個組件GridLayout (int rows, int cols); /構(gòu)造一個GridLayout 布局,有rows 行、cols 列GridLayout(int rows,int cols,int hgap,int vgap); /構(gòu)造一個GridLayout 布局,有rows行,cols列,行間距和列間距分別為hgap和vgap共五十三頁GridLayout網(wǎng)格(wn )布局共五十三頁CardLayout卡片(kpin)布局CardLayout類在處理(

33、chl)容器內(nèi)的組件時,容器表面上可以容納多個組件。但是,在同一時間,容器只能從這些組件中選出一個來顯示,就像一副撲克牌每次只能顯示最上面的一張一樣,而且可以向前翻閱組件,也可以向后翻閱組件。CardLayout網(wǎng)格布局的構(gòu)造方法有CardLayout (); /創(chuàng)建一個CardLayout 布局CardLayout (int hgap, int vgap); /創(chuàng)建一個CardLayout 布局,水平、垂直間距分別hgap和vgap共五十三頁CardLayout卡片(kpin)布局共五十三頁null空布局(bj)除了設(shè)置系統(tǒng)預(yù)定義的布局,容器還有可以設(shè)置為null布局,表示空布局。這時我們需

34、要手工編寫代碼告知組件(z jin)容器中放置位置的大小,否則組件(z jin)無法顯示。因此null布局又稱為“手工布局”。設(shè)置組件的位置和大小的常用方法有void setBounds(int x, int y, int width, int height); /設(shè)置或調(diào)整組件的位置和大小。void setLocation(int x, int y); /設(shè)置組件的位置void setSize(int width, int height); /設(shè)置組件的大小共五十三頁null空布局(bj)共五十三頁事件處理機制(jzh)圖形界面的處理離不開事件(event),通過事件驅(qū)動方式(fngsh)進(jìn)

35、行人機互動的交流。常用的事件是鼠標(biāo)事件(MouseEvent)和鍵盤事件(KeyEvent),如用鼠標(biāo)單擊或雙擊按鈕、敲擊鍵盤上額的按鍵等。在Java語言中,觸發(fā)按鈕、菜單功能的,除了鼠標(biāo)事件和鍵盤事件外,更多的是使用動作事件ActionEvent,這是比鼠標(biāo)和鍵盤事件更加高級的事件。共五十三頁事件處理的模型(mxng)共五十三頁事件(shjin)類在Java中,根據(jù)(gnj)事件的不同特征,將事件分為:低級事件(low-level event)和語義事件(semantic event)。共五十三頁事件(shjin)類語義事件(shjin)直接繼承自AWTEvent,如ActionEvent、

36、AdjustmentEvent與ComponentEvent等。底層事件則是繼承自ComponentEvent類,如ContainerEvent、FocusEvent、WindowEvent與KeyEvent等。Java中低級事件的列表事件名稱事件說明事件的觸發(fā)ComponentEvent組件事件縮放、移動或顯示組件InputEvent輸入事件操作鍵盤或鼠標(biāo)KayEvent鍵盤事件鍵盤被按下或釋放MouseEvent鼠標(biāo)事件鼠標(biāo)移動、拖動或鼠標(biāo)被按下、釋放或點擊FocusEvent焦點事件組件得到或是去焦點ContainerEvent容器事件容器內(nèi)組件添加或刪除WindowEvent窗口事件窗

37、口被激活、關(guān)閉、圖表化、恢復(fù)共五十三頁事件(shjin)類語義事件(shjin)列表事件名稱事件說明事件源組件事件的觸發(fā)ActionEvent行為事件ButtonTextFieldComboBoxTimer點擊按鈕、選擇菜單項、選擇列表框、定時器設(shè)定時間到、文本輸入?yún)^(qū)域內(nèi)輸入回車等操作ItemEvent選項事件CheckBoxRadioButtonChoiceList選項列表中某項被選擇或取消選擇TextEvent文本事件TextFieldTextArea輸入、改變文本內(nèi)容AdjustEvent調(diào)整事件ScrollBar調(diào)整滾動條共五十三頁事件(shjin)類常用的事件監(jiān)聽(jin tn)借口

38、類及其定義的抽象方法列表事件類監(jiān)聽器接口監(jiān)聽器接口定義的抽象方法(事件處理器)ActionEventActionListeneractionPerformed(ActionEvent e)AdjustmentEventAdjustmentListeneradjustmentValueChanged(AdjustmentEvent e)ItemEventItemListeneritemStateChanged(ItemEvent e)KeyEventKeyListenerkeyTyped(KeyEvent e)keyPressed(KeyEvent e)keyReleased(KeyEvent

39、e)MouseEventMouseListenerMouseMotionListenermouseClicked(MouseEvent e)mouseEntered(MouseEvent e)mouseExited(MouseEvent e)mousePressed(MouseEvent e)mouseReleased(MouseEvent e)mouseDragged(MouseEvent e)mouseMoved(MouseEvent e)TextEventTextListenertextValueChanged(TextEvent e)WindowEventWindowListenerw

40、indowActivated(WindowEvent e)windowClosed(WindowEvent e)windowClosing(WindowEvent e)windowDeactivated(WindowEvent e)windowDeiconified(WindowEvent e)windowIconified(WindowEvent e)windowOpened(WindowEvent e)共五十三頁鼠標(biāo)事件處理類java.awt.event.MouseEvent 包裝常用的鼠標(biāo)事件,例如,按下鼠標(biāo)鍵和放開鼠標(biāo)鍵等。類MouseEvent 的實例對象記錄了鼠標(biāo)的當(dāng)前位置和狀態(tài)(

41、zhungti)發(fā)生變化的鼠標(biāo)鍵(如按下左鍵或右鍵)等。可以通過類MouseEvent以下的兩個方法獲取鼠標(biāo)的當(dāng)前位置int getX();int getY();對鼠標(biāo)事件進(jìn)行處理最關(guān)鍵的是實現(xiàn)事件監(jiān)聽器接口。這些相關(guān)接口包括MouseListener、MouseMotionListener、MouseWheelListener 和MouseInputListener。前面3 個是包java.awt.event 中的接口,最后一個接口MouseInputListener 來自包javax.swing.event。共五十三頁鼠標(biāo)事件處理接口java.awt.event.MouseListener

42、 主要用來處理按下鼠標(biāo)鍵、放開鼠標(biāo)鍵、單擊鼠標(biāo)鍵、鼠標(biāo)進(jìn)入組件內(nèi)和鼠標(biāo)離開(l ki)組件區(qū)域等事件,具體如下:public interface MouseListener extends EventListener public void mouseClicked(MouseEvent e); /處理單擊鼠標(biāo)的事件(按下并放開鼠標(biāo)) public void mouseEntered(MouseEvent e); /處理鼠標(biāo)進(jìn)入組件內(nèi)的事件 public void mouseExited(MouseEvent e); /處理鼠標(biāo)離開組件所在的區(qū)域的事件 public void mousePre

43、ssed(MouseEvent e); /處理按下鼠標(biāo)的事件 public void mouseReleased(MouseEvent e); /處理放開鼠標(biāo)的事件共五十三頁鼠標(biāo)事件處理接口java.awt.event.MouseMotionListener 主要用來處理鼠標(biāo)運動事件,即移動鼠標(biāo)和拖動鼠標(biāo),具體(jt)聲明如下:public interface MouseMotionListener extends EventListener public void mouseDragged(MouseEvent e);/處理鼠標(biāo)拖動的事件(移動時, 按下鼠標(biāo)鍵) public void mo

44、useMoved(MouseEvent e); /處理移動鼠標(biāo)的事件共五十三頁鼠標(biāo)事件處理接口java.awt.event.MouseWheelListener 主要用來處理鼠標(biāo)滾輪的運動事件。具體聲明(shngmng)如下:public interface MouseWheelListener extends EventListener public void mouseWheelMoved(MouseWheelEvent e);/處理滾動鼠標(biāo)滾輪的事件接口javax.swing.event.MouseInputListener綜合了MouseListener和Mouse MotionLis

45、tener,即MouseInputListener 包含了MouseListener 和MouseMotionListener 的所有成員方法。共五十三頁鍵盤(jinpn)事件處理要實現(xiàn)(shxin)鍵盤事件監(jiān)聽器,就是要實現(xiàn)(shxin)鍵盤事件監(jiān)聽器接口。常用的鍵盤事件監(jiān)聽器有java.awt.event.FocusListener 和java.awt.event.KeyListener。接口FocusListener主要用來處理獲取或失去鍵盤焦點的事件。接口FocusListener 的聲明如下:public interface FocusListener extends EventLi

46、stener public void focusGained(FocusEvent e); public void focusLost(FocusEvent e);共五十三頁鍵盤(jinpn)事件處理接口KeyListener 主要用來處理鍵盤的輸入(shr),如按下鍵盤上的某個鍵,放開某個鍵,或輸入(shr)某個字符。具體聲明如下public interface KeyListener extends EventListener public void keyTyped(KeyEvent e); public void keyPressed(KeyEvent e); public void keyReleased(KeyEvent e);共五十三頁事件(shjin)適配器通過前面的事件處理,我們可以發(fā)現(xiàn),如果要注冊監(jiān)聽接口,則必須實現(xiàn)接口的所有方法(fngf),用不到的方法(fngf)也必須寫成空方法(fngf)。如果一個接口中的方法(fngf)較多,而我們可以只是用其中的一個,那么些代碼就顯得有些麻煩。為了解決這個問題,Java引入了事件適配器的概念。事件適配器其實就是一個接口的實現(xiàn)類。實際上適配器類只是將監(jiān)聽接口中的方法全部寫成了空的方法。常用的事件適配器類有以下幾種MouseAdapter / 鼠標(biāo)事件適配器WindowAdapter / 窗口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論