版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第16章 圖形界面編程圖形用戶界面(Graphical User Interface)簡稱GUI,提供了一種更加直觀、友好的與用戶進行交互的方式。利用Java語言進行圖形用戶界面操作主要由java.awt和javax.swing兩個包來完成。其中,AWT包是圖形用戶界面處理的基本工具包,SwingAWT包的基礎(chǔ)上進行了升級、擴展,具有更加強大的圖形界面開發(fā)功能。本章在了解AWT包功能的基礎(chǔ)上,重點講解Swing的功能。116.1 AWT簡介Java 1.0的出現(xiàn)帶來了抽象窗口工具箱(AWT)。設(shè)計目標(biāo)是希望構(gòu)建一個通用的GUI,使得利用它編寫的程序能夠運行在所有的平臺上,以實現(xiàn)Sun公司提出的
2、口號“一次編寫,隨處運行”。Java AWT中包含了許多類來支持GUI設(shè)計。AWT由Java的java.awt包提供,該包中有許多用來設(shè)計GUI的組件類,如按鈕、菜單、列表、文本框等組件類;同時還包含窗口、面板等容器類。AWT的具體層次結(jié)構(gòu)如圖16.1所示。216.1 AWT簡介Java提供了一系列AWT軟件包,其中主要的包及包的描述如圖16.2所示。316.1 AWT簡介java.awt包提供了基本的Java程序的GUI設(shè)計工具。主要包括組件、容器和布局管理器三個概念,其具體描述如圖16.3所示。416.2 Swing簡介Swing是Java基礎(chǔ)類庫(Java Foundation Clas
3、ses)中有關(guān)圖形界面的類庫。Swing擴展自AWT。例如JFrame擴展自Frame,JButton擴展自Component等?;旧螦WT中的每種控件都能在Swing中找到替代品,比如AWT中的Button對應(yīng)于Swing中的JButton,AWT中的TextField對應(yīng)于Swing中的JTextField等。516.2 Swing簡介Swing包是JFC(Java Foundation Classes)的一部分,它由許多包組成,這些包的名稱及描述如表16.1所示。包名包的描述Com.sum.swing.plaf.motif實現(xiàn)Motif界面樣式代表類Com.sum.java.swing
4、.plaf.windows實現(xiàn)Windows界面樣式的代表類javax.swingSwing組件和使用工具javax.swing.borderSwing輕量組件的邊框javax.swing.colorchooserJcolorChooser的支持類/接口javax.swing.event事件和偵聽器類javax.swing.J的支持類/接口javax.swing.pending未完全實現(xiàn)的Swing組件javax.swing.plaf抽象類,定義UI代表的行為javax.swing.plaf.basic實現(xiàn)所有標(biāo)準(zhǔn)界面樣式公共基類javax.swing.plaf.metal它們實現(xiàn)Metal界
5、面樣式代表類javax.swing.tableJtable組件javax.swing.text支持文檔的顯示和編輯javax.swing.text.html支持顯示和編輯HTML文檔javax.swing.text.html.parserHtml文檔的分析器javax.swing.text.rtf支持顯示和編輯RTF文件javax.swing.treeJtree組件的支持類javax.swing.undo支持取消操作616.3 容器類 窗口(JFrame)、面板(JPanel)和對話框(J)是Swing中提供用來創(chuàng)建表示圖形用戶界面的類。該類的對象將被當(dāng)作容器使用,所有的Swing組件都必須被
6、添加到容器中,才能被顯示出來。716.3.1 JFrame類JFrame是一個窗口容器組件,可以被顯示在用戶桌面上,同時也是一個框架,在其中,可以添加需要的其他的Swing組件。JFrame是少數(shù)幾個不是通過繪制的方式顯示的Swing組件。JFrame類的構(gòu)造方法如圖16.5所示。816.3.1 JFrame類JFrame類中還提供了一些與窗口有關(guān)的方法。其主要方法與方法描述如表16.2所示。方法方法描述public void setVisible(boolean b)判斷窗體是否可見。如果參數(shù)b為true則表示顯示該窗體,否則表示不可見public void setBackground(Co
7、lor c)設(shè)置窗體背景顏色public void setTitle(String s)設(shè)置標(biāo)題。其中參數(shù)s表示要顯示在窗體邊界中的標(biāo)題public String getTitle()獲取窗體邊界的標(biāo)題。如果沒有標(biāo)題則返回空字符串public void pack()調(diào)整適合其子組件的大小和布局窗口的大小public void setResizable(boolean resizable)設(shè)置窗口大小是否可以調(diào)整public Container getContentPane()返回此窗體的 contentPane 對象public void setLayout(LayoutManager man
8、ager)設(shè)置布局管理器public void validate()驗證容器及其容器中的組件916.3.2 JDialog類JDialog是一個用來創(chuàng)建對話框的類,是Dialog類的子類。創(chuàng)建的JDialog對象可以用來向用戶返回信息,接收用戶的輸入,實現(xiàn)與用戶的交互。JDialog與JFrame的區(qū)別在于:JDialog對象需要依賴于其他的對話框(比如Jframe)而存在,當(dāng)它所依賴的對話框關(guān)閉或最小化的時候,該對話框也隨之關(guān)閉或最小化。1016.3.2 JDialog類JDialog類創(chuàng)建對話框?qū)ο蟮臉?gòu)造方法如圖16.7所示。JDialog類中的主要方法及方法描述如表16.3所示。方法方法
9、描述String getTitle()用于獲取對話框的名字void setTitle(String s)用于設(shè)置對話框的名字void setModal(boolean b)用于設(shè)置對話框的模式setSize(int width,int height)用于設(shè)置對話框的大小void setVisible(boolean b)用于設(shè)置對話框是否可見1116.3.3 JPanel類在得到了JFrame的內(nèi)容面板后我們就可以直接將其他的Swing組件放在其中,或者直接在上面描繪圖畫或文字,但是習(xí)慣上一般不會這么做。通常會將這些圖畫或文字信息描繪在名為JPanel的容器上,然后再將JPanel實例放在內(nèi)容
10、面板上。這樣可以使得面板上的布局更合理。JPanel通常只作為純粹的容器來使用,它不能像框架、窗口或者對話框那樣獨立存在。JPanel的構(gòu)造方法如圖16.9所示。1216.4 Swing常用基本組件創(chuàng)建圖形用戶界面GUI,就是為了讓計算機程序更好的和用戶交互。Java Swing提供了二十多種不同的用戶界面組件。所有的Swing組件都是從javax.swing.Jcomponent類中派生而來的,從而繼承了組件所特有的屬性和方法。1316.4.1 常用組件的共性操作Swing類庫中的組件都繼承自javax.swing.JComponent,因此都具有JComponent的操作,包括設(shè)置背景色、
11、設(shè)置前景色、設(shè)置字體以及設(shè)置是否禁用等。表16.4中是JComponent中常用的方法及方法描述。方法方法描述int getHeight()返回組件高度int getWidth()返回組件寬度String getToolTipText()返回工具提示void setToolTipText(String text)設(shè)置工具提示Dimension getSize(Dimension rv)返回尺寸int getX()返回位置xvoid setBackground(Color bg)設(shè)置背景色void setOpaque(boolean isOpaque)設(shè)置是否透明void setVisible(
12、boolean aFlag)設(shè)置是否可見void setFont(Font font)設(shè)置字體void setBorder(Border border)設(shè)置邊框1416.4.2 按鈕(JButton)按鈕是用戶界面中常用的組件。用戶使用Swing按鈕可以顯示圖像,將整個按鈕設(shè)置為窗口默認圖標(biāo),來處理鼠標(biāo)在按鈕上的事件。java.swing包中提供了標(biāo)準(zhǔn)的按壓式按鈕(JButton)。同時提供了選擇式按鈕:多選擇(JCheckBox)、單選擇(JRadioButton)等。我們在這里先來講解JButton的知識。JButton的構(gòu)造方法如圖16.11所示。1516.4.3 文本框(JTextFi
13、eld)與密碼輸入框(JPasswordField)文本框(JTextField)也是一種常見的組件,用于處理一行文本(中間沒有回車符)。JTextField 是JTextComponent的子類。密碼輸入框是JTextField的一個子類。JTextField和JPasswordField的構(gòu)造函數(shù)形式和常用方法完全一樣。這里只列出JTextField的構(gòu)造函數(shù),如圖16.13所示。1616.4.4 文本域(JTextArea)文本域(JTextArea)也是一種常用組件,用于處理多行文本。JTextArea同JTextField一樣,都是JTextComponent的子類,因此它們的很多操
14、作都類似,我們不再贅述。JTextArea的構(gòu)造函數(shù)如圖16.15所示。1716.4.5 標(biāo)簽(JLabel)標(biāo)簽(JLabel)用來顯示一段文本,常用在JTextField或者JTextArea前面,提示用戶要填寫什么樣的信息。JLabel用于顯示文字,也可以同時顯示文字和圖標(biāo),一般不用于接收鼠標(biāo)鍵盤的動作。JLabel的構(gòu)造方法如圖16.17所示。1816.4.6 單選按鈕(JRadioButton)JRadioButton用來實現(xiàn)單選按鈕組件,按鈕有選中和沒被選中兩種狀態(tài)。多個單選按鈕中,一次只能有一個按鈕處于被選中狀態(tài)。JRadioButton的構(gòu)造方法如圖16.19所示。1916.4
15、.7 復(fù)選框(JCheckBox)JCheckBox是用來實現(xiàn)JCheckBox的組件。復(fù)選框是一個可以被選定和取消選定的項,它將其狀態(tài)顯示給用戶。一次可以選中多個復(fù)選框。JCheckBox類的構(gòu)造方法如圖16.21所示。2016.4.8 下拉列表(JComboBox)下拉列表(JComboBox)是一種常見的組件。用戶可以從下列的菜單列表中選擇所需要的數(shù)據(jù)。一個下拉列表只能選擇一個選項。JComboBox的構(gòu)造方法如圖16.23所示??梢詫⑿枰谙吕斜碇酗@示的各項放入一個數(shù)組中,然后利用其相應(yīng)的構(gòu)造方法將數(shù)組元素的各項顯示出來。2116.4.9 列表(JList)JList是用來表示列表的
16、組件。該組件與下拉列表不同,它可以顯示多個項目的內(nèi)容,并且允許用戶從列表中選擇一個或多個對象。JList的主要構(gòu)造方法如圖16.25所示。與下拉列表相同,可以將需要顯示的內(nèi)容先放入一個數(shù)組中,然后使用帶有Object類型數(shù)組為參數(shù)的的構(gòu)造方法創(chuàng)建一個JList對象,將列表中各項顯示出來。2216.4.10 滾動條(JScrollPane)JscrollPane類的對象可以創(chuàng)建一個垂直或者水平方向的滾動條。在實際使用中,它需要和某個容器相關(guān)聯(lián)。例如,表格、窗體等。JScrollPane類的構(gòu)造方法如圖16.27所示。2316.5 Swing高級組件16.4小節(jié)中我們介紹了Swing基本組件,但在
17、實際應(yīng)用中,對于一些比較復(fù)雜的界面,除了使用這些基本組件之外,還需要使用諸如表格、菜單、工具欄等這些組件。本節(jié)我們就來介紹Swing中的一些高級組件的創(chuàng)建和使用,包括表格、樹、菜單,以及對話框等組件。2416.5.1 表格(JTable)表格(JTable)是Swing新增加的組件,主要是為了將數(shù)據(jù)以表格的形式顯示。JTable是一個用來顯示和編輯二維單元表格的組件??梢酝ㄟ^創(chuàng)建一個二維數(shù)組對象,并將二維數(shù)組中定義并初始化的值放入到表中。Jtable創(chuàng)建表格的主要構(gòu)造方法如圖16.29所示。2516.5.2 樹(JTree)樹是非常重要也是常用的一種數(shù)據(jù)結(jié)構(gòu)。在計算機中也有著廣泛的應(yīng)用,計算機
18、中的目錄和文件的存儲結(jié)構(gòu)都是樹形的。在Swing中,可以使用JTree來構(gòu)建一個樹形結(jié)構(gòu)模型。首先我們可以先舉一個樹形結(jié)構(gòu)的例子,例如在“我的電腦”的C盤下的目錄結(jié)構(gòu),如圖16.31所示。2616.5.2 樹(JTree)在這個圖中我們要注意以下幾點:一顆樹中只有一個根結(jié)點。其余結(jié)點都是從該結(jié)點引出。除根結(jié)點外。其余結(jié)點要么是沒有子結(jié)點的結(jié)點要么是帶有子結(jié)點的結(jié)點。沒有子結(jié)點的結(jié)點稱為葉子結(jié)點。在圖16.31的樹結(jié)構(gòu)中,“計算機”是根結(jié)點,“Intel”文件是一個葉子結(jié)點,“NVIDIA”文件是一個帶有子結(jié)點的結(jié)點。然后我們看JTree的主要的構(gòu)造方法,如圖16.32所示。2716.5.3 菜
19、單(JMenu)菜單(JMenu)是標(biāo)題欄下面的一行文字部分。菜單是應(yīng)用程序中最常用的組件。菜單的組織方式為:一個菜單條JMenuBar包含多個菜單項(JMenuItem)。JMenuItem有兩個子類,分別為JRadioButtonMenuItem及JCheckBoxMenuItem用于表示單選菜單項和復(fù)選菜單項。2816.5.3 菜單(JMenu)JMenu組件類的主要構(gòu)造方法如圖16.34所示。創(chuàng)建菜單項的JMenuItem的主要構(gòu)造方法如圖16.35所示。2916.5.4 工具欄(JToolBar)工具欄(JToolBar)提供了一種可以快速訪問界面中常用命令的方式。通常工具欄應(yīng)該放到
20、邊界布局中的一邊。可以水平和垂直放置,也可以拖動工具欄將其放置在想要放置的位置。工具欄一般放到菜單欄的下面,可以把菜單欄中的常用命令放到工具欄中,以方便用戶操作。3016.5.4 工具欄(JToolBar)Java中可以通過創(chuàng)建JToolBar對象來實現(xiàn)工具欄。JToolBar的主要構(gòu)造方法如圖16.37所示。orientation參數(shù)可以是以下兩個值中的任何一個。SwingConstants.HORIZONTAL表示工具欄以水平方向放置。SwingConstants.VERTICAL表示工具欄以垂直方向放置。3116.5.5 進程條(JprogressBar)進程條(JprogressBar
21、)是以圖形化的方式來描述任務(wù)進度的組件。在任務(wù)完成過程中,進度條顯示該任務(wù)完成的百分比,百分比通常用可視化的矩形表示,該矩形開始為空,隨著任務(wù)的執(zhí)行,組件被填滿。JprogressBar的主要構(gòu)造方法如圖16.39所示。3216.5.6 對話框(JDialog)對話框是一種大小不能變化、不能有菜單的容器窗口,對話框不能作為一個應(yīng)用程序的主框架,而必須包含在其他的容器中。Java語言提供多種對話框類來支持多種形式的對話框。我們這里只為大家介紹一下簡單的標(biāo)準(zhǔn)對話框JOptionPane。3316.5.6 對話框(JDialog)JOptionPane提供的對話框是模式對話框。使用JOptionPa
22、ne,可以創(chuàng)建和自定義問多種類型的對話框。JOptionPane類的構(gòu)造方法如圖16.41所示。3416.6 布局管理器在Java語言中,把創(chuàng)建的組件放置到對話框中,需要設(shè)置對話框界面的格式,這時候就必須使用布局管理器(layout manager),來排列界面上的組件。當(dāng)組件被加入到容器中時,將如何排列,都由布局管理器來進行管理。Java中的布局管理器包括:FlowLayout、GridLayout、BorderLayout、CardLayout和GridBagLayout。當(dāng)創(chuàng)建好需要的布局管理器后,就可以調(diào)用容器的setLayout()方法,來設(shè)定該容器的布局方式。下面我們?yōu)榇蠹揖唧w介紹
23、幾種主要的布局管理器。3516.6.1 BorderLayout管理器BorderLayout布局管理器將容器劃分為東(East)、西(West)、南(South)、北(North)、中(Center)五個區(qū)域。它是Frame類的默認布局管理器。采用BorderLayout布局時,向容器中添加組件需要指定組件所在的區(qū)域。其大致所分區(qū)域如圖16.43所示。3616.6.1 BorderLayout管理器BorderLayout類的主要構(gòu)造方法如圖16.44所示。圖中參數(shù)align指定了布局的位置,如表16.5所示。參數(shù)參數(shù)描述BorderLayout.CENTER中間BorderLayout.E
24、AST東邊BorderLayout.WEST西邊BorderLayout.SOUTH南邊BorderLayout.NORTH北邊3716.6.2 FlowLayout管理器流動布局是使用FlowLayout類來創(chuàng)建的。該布局方式是最簡單的一種布局管理器,其排列組件的方式是按照:從左到右排列,當(dāng)組件排列到容器行尾時,會自動換行并繼續(xù)排列剩下的組件。它是Panel類的默認布局管理器。我們可以調(diào)用相關(guān)方法設(shè)置不同的組件間距、行距以及對齊方式。FlowLayout管理器的布局示意圖如圖16.46所示。3816.6.2 FlowLayout管理器FlowLayout類的主要構(gòu)造方法如圖16.47所示。3
25、916.6.2 FlowLayout管理器圖中參數(shù)align指定一種對齊方式。其具體描述如表16.6所示。如果對窗體的大小進行調(diào)整,組件在流布局中會根據(jù)窗體調(diào)整的大小重新調(diào)整其位置。如圖16.49所示。參數(shù)參數(shù)描述FlowLayout.LEFT靠左排列FlowLayout.CENTER置中排列FlowLayout.RIGHT靠右排列FlowLayout.LEADING對齊左邊界FlowLayout.TRAILING對齊右邊界4016.6.3 CardLayout管理器網(wǎng)格布局GridLayout管理器,可以將容器劃分為若干行與若干列的網(wǎng)格區(qū)域,并將組件放置在由行和列組成的網(wǎng)格中。采用GridL
26、ayout布局時,在容器中按照從左到右、從上到下的順序往網(wǎng)格中逐個添加組件。GridLayout管理器的布局示意圖如圖16.50所示。4116.6.3 CardLayout管理器GridLayout類的主要構(gòu)造方法如圖16.51所示。GridLayout類提供的對網(wǎng)格布局中的行、列,以及水平和垂直間距進行設(shè)置的方法如表16.7所示。方法名稱方法描述public void setRows(int rows)設(shè)置布局中的行數(shù)public void setColumns(int cols)設(shè)置布局中的列數(shù)public void setHgap(int hgap)設(shè)置布局中組件之間的水平距離publi
27、c void setVgap(int vgap)設(shè)置布局中組件之間的垂直距離4216.6.4 GridBagLayout管理器GridBagLayout布局管理器在GridLayout布局管理器的基礎(chǔ)上提供了更加復(fù)雜的功能。采用GridBagLayout布局時,一個組件可以跨越多個行列放在多個網(wǎng)格內(nèi)。另外,可以通過設(shè)定填充方式、間距等任意調(diào)整組件的大小和位置。GridBagLayout管理器的布局示意圖如圖16.53所示。4316.6.4 GridBagLayout管理器GridBagLayout類的構(gòu)造方法與GridLayout類的構(gòu)造方法基本相同,只是在GridLayout類基礎(chǔ)上又增加了
28、一些屬性,如表16.8所示。新增屬性屬性描述int anchor指定組件在區(qū)域中放置的位置int fill指定組件填充方式int gridheight指定組件的高度,單位為網(wǎng)格個數(shù)int gridwidth指定組件的寬度,單位為網(wǎng)格個數(shù)int gridx指定組件的橫向坐標(biāo),單位為網(wǎng)格個數(shù)int gridy指定組件的縱向坐標(biāo),單位為網(wǎng)格個數(shù)Insets insets指定組件與區(qū)域的間隔大小4416.6.5 CardLayout管理器CardLayout布局管理器用于將組件以卡片的形式進行布局。采用CardLayout布局,每張卡片屬于不同的層次,并且充滿整個容器。它將容器中的每個組件看作一張卡片
29、。任何情況下,一次只能看到一張卡片,即一次只有一個組件可見。組件的順序由組件對象本身在容器內(nèi)部的順序決定。CardLayout管理器的布局示意圖如圖16.55所示。4516.6.5 CardLayout管理器CardLayout類的主要構(gòu)造方法如圖16.56所示。CardLayout類提供了一些方法用來翻轉(zhuǎn)該布局中的組件。具體方法及其描述如表16.9所示。方法方法描述public void first(Container parent)翻轉(zhuǎn)到容器的第一張卡片public void last(Container parent)翻轉(zhuǎn)到容器的最后一張卡片public void next(Contai
30、ner parent)翻轉(zhuǎn)到指定容器的下一張卡片public void previous(Container parent)翻轉(zhuǎn)到指定容器的前一張卡片public void setHgap(int hgap)設(shè)置組件之間,以及組件與Container的邊之間水平間隙public void setVgap(int vgap)設(shè)置組件之間,以及組件與Container的邊之間垂直間隙public int getHgap()獲得組件之間,以及組件與Container的邊之間的水平間隙public int getVgap()獲得組件之間,以及組件與Container的邊之間的垂直間隙4616.6.5
31、CardLayout管理器我們可以單擊“前一張卡片”按鈕和“后一張卡片按鈕”,發(fā)現(xiàn)實際顯示在窗體的只能是一個按鈕。且它們是按順序排列的,如圖16.58所示。4716.6.6 不使用布局管理器定位組件不同的布局管理器會將組件定位在不同的位置。但是,有些時候并不想使用指定的某個布局管理器對組件進行定位。而是想按照自己的設(shè)計對組件進行定位,這時我們可以使用setBounds()方法來完成這一任務(wù)。setBounds()方法的語法格式如圖16.59所示。4816.7 Swing的事件處理前面幾小節(jié)的主要內(nèi)容是討論組件的使用以及容器的布局,這些內(nèi)容使Java圖形用戶界面的程序設(shè)計變得靈活方便,與圖形界面
32、程序密切相關(guān)的還有一個比較重要的內(nèi)容事件處理機制。4916.7.1 事件處理機制概述事件處理是圖形界面與用戶進行交互的重要內(nèi)容。Java語言的事件處理機制包括事件源、事件、事件處理器三個主要的概念。首先需要為事件源注冊相應(yīng)的事件處理器,事件源產(chǎn)生指定事件后,事件處理器捕獲后進行相應(yīng)事件處理。其大致處理機制如圖16.61所示。5016.7.1 事件處理機制概述以下是對三個概念的說明:事件源:產(chǎn)生事件的各種組件,如窗口、按鈕、復(fù)選框等。事件:用戶對事件源的各種操作動作。事件處理器:用于接收并處理事件的方法。在圖形用戶界面的程序中,用戶的不同操作,如單擊鼠標(biāo)、移動鼠標(biāo)、鍵盤輸入等,會引發(fā)不同的事件類
33、型,而不同的事件,需要相對應(yīng)的事件監(jiān)聽器來監(jiān)聽并處理事件。在本節(jié)中就來講解Java中有什么類型的事件,不同類型時間需要哪些特定類型事件監(jiān)聽器來處理。5116.7.2 事件監(jiān)聽器實現(xiàn)事件處理,首先要實現(xiàn)監(jiān)聽器接口,然后調(diào)用事件源對象中的方法來一個添加監(jiān)聽器對象。當(dāng)事件發(fā)生后,事件源會調(diào)用監(jiān)聽器接口中的方法,通過將事件對象傳遞給相應(yīng)的監(jiān)聽器方法來實現(xiàn)對事件的處理。5216.7.2 事件監(jiān)聽器每種事件類都有對應(yīng)的事件監(jiān)聽器,它是事件監(jiān)聽器類的接口。各種事件類的接口描述如表16.10所示。事件類別描述信息接口名方法ActionEvent激活組件ActionListeneractionPerformed
34、(ActionEvent)ItemEvent選擇了某些項目ItemListeneritemStateChanged(ItemEvent)MouseEvent鼠標(biāo)移動MouseMotionListenermouseDragged(MouseEvent)mouseMoved(MouseEvent)鼠標(biāo)單擊等MouseListenermousePressed(MouseEvent)mouseReleased(MouseEvent)mouseEntered(MouseEvent)mouseExited(MouseEvent)mouseClicked(MouseEvent)KeyEvent鍵盤輸入Key
35、ListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTyped(KeyEvent)FocusEvent組件收到或失去焦點FocusListenerfocusGained(FocusEvent)focusLost(FocusEvent)WindowEvent窗口收到窗口級事件WindowListenerwindowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)windowDeiconified(WindowEvent)5316.7.3 焦點事件焦
36、點事件類(FocusEvent)是指用戶程序界面的組件焦點發(fā)生改變(即焦點從一個對象轉(zhuǎn)移到另外一個對象)時,就會發(fā)生焦點事件。得到焦點事件的組件處于激活狀態(tài)。使用焦點事件必須給組件增加一個FocusListener接口的事件處理器,該接口包含如下兩個方法,如圖16.63所示。5416.7.4 鍵盤事件鍵盤事件用于處理用戶在鍵盤上輸入的信息,其中回車鍵的輸入還可以通過ActionListener進行處理。表示鍵盤事件的類是KeyEvent,這個類除了包含有產(chǎn)生鍵盤事件的事件源,還包含了用戶當(dāng)前輸入的是哪一個鍵的信息。實現(xiàn)該事件的類需要實現(xiàn)KeyListener接口,該接口中的方法如圖16.65所示。5516.7.4 鍵盤事件鍵盤事件類的方法及方法描述如表16.10所示。方法方法描述getKeyChar()返回在鍵盤上按下的字符。getKeyCode()返回在鍵盤上按下的字符碼。getKeyLocation()返回鍵位置。getKeyModifiersText()返回描述
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招投標(biāo)項目供應(yīng)鏈管理優(yōu)化
- 商業(yè)廣場樓面耐磨施工合同
- 籃球場水電布線施工協(xié)議
- 石油開采挖機計時租賃合同
- 商務(wù)樓宇治安管理規(guī)則
- 生物科技項目跟投管理
- 舞臺座位分配指南
- 藝術(shù)展覽設(shè)計審查策略
- 言語康復(fù)治療師年終總結(jié)
- 《華為集團介紹》課件
- 消防應(yīng)急演練培訓(xùn)課件
- 微生物發(fā)酵過程優(yōu)化方案
- 奧林匹克標(biāo)準(zhǔn)體育館設(shè)施配置
- 節(jié)日景觀布置投標(biāo)方案(技術(shù)方案)
- (教案)Unit 3 Celebrations Topic Talk 高中英語北師大版 必修 一
- 小學(xué)生主題班會:自立自強勇攀高峰模板
- 資方和項目方的合作協(xié)議范本
- 習(xí)作單元解讀及其教學(xué)策略
- “雙減”背景下小學(xué)排球運動發(fā)展路徑探索
- 八年級地理上冊第一、二章測試題及(答案)
評論
0/150
提交評論