




已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七講 Swing組件及事件處理,教學(xué)目的: 1.掌握?qǐng)D形用戶界面中各種基本組件的屬性及使用方法; 2.掌握?qǐng)D形用戶界面的事件處理機(jī)制。 教學(xué)內(nèi)容: 本講主要介紹Java GUI中各種組件的用法,及相應(yīng)的事件處理機(jī)制。,重點(diǎn): 1.各組件的屬性及使用。 2.事件的處理方法。 難點(diǎn): GUI中的事件處理機(jī)制。,補(bǔ)充知識(shí),一、Java圖形用戶界面 圖形用戶界面(GUI,Graphical User Interface)是為應(yīng)用程序提供一個(gè)圖形化的界面,程序通過(guò)GUI與用戶交互,GUI能使一個(gè)應(yīng)用程序具有與眾不同的“外觀”與“感覺”。 二、重量級(jí)和輕量級(jí)組件介紹 容器(Container)是組件(Component)的抽象子類,在該類中允許裝入其他的組件,要裝入的組件也可以是容器,在這些窗口中還可以裝入其他的組件,這樣可以創(chuàng)建完整的層次結(jié)構(gòu)。容器有助于在屏幕上布置GUI組件。最常用的容器是Panel和Frame。,補(bǔ)充知識(shí),三、 java.awt中的各個(gè)類,四、圖形組件類的繼承關(guān)系(補(bǔ)充知識(shí)),Swing包中類的關(guān)系,javax.swing包中有四個(gè)最重要的類JApplet、JFrame、JDialog、JComponent。 JComponent類的子類都是輕組件,而JFrame、JApplet、JDialog都是重組件,即有同位體的組件,這樣窗口(JFrame)、對(duì)話框(JDialog)、小應(yīng)用程序(JApplet)可以和操作系統(tǒng)交互信息,輕組件必須在這些重量容器中繪制自己。 JComponent 類是java.awt包中容器類Container類的子類,因此所有的輕量組件也都是容器。,補(bǔ)充知識(shí),五、窗口類 AWT提供了三個(gè)在屏幕上顯示窗口的組件:Window、Frame和Dialog。這三個(gè)組件都用于顯示窗口,而且相互之間的區(qū)別也不明顯,因此有時(shí)候很難確定到底使用哪個(gè)組件更好。,補(bǔ)充知識(shí),1、窗口(Window) java.awt.Window是三個(gè)窗口組件中最基本的組件,它實(shí)際上是Frame與Dialog組件的超類。窗口組件沒有邊界、標(biāo)題欄與菜單欄,而且大小不可以調(diào)整。 常用窗口實(shí)現(xiàn)的界面包括:產(chǎn)品信息的封面(如Outlook等軟件啟動(dòng)時(shí),顯示在屏幕中間且?guī)酌牒笞詣?dòng)消失的封面窗口),提示幫助信息(如使用金山詞霸等軟件時(shí),移動(dòng)鼠標(biāo)到某個(gè)英文單詞上時(shí)自動(dòng)彈出的解釋信息)等。,補(bǔ)充知識(shí),2、框架(Frame) java.awt.Frame是Window的一個(gè)子類,它是帶有標(biāo)題欄和邊界的窗口,而且允許調(diào)整大小。另外,用戶還可以為框架附加一個(gè)菜單欄。用戶在程序設(shè)計(jì)過(guò)程中,當(dāng)程序窗口需要圖表化或者需要包含菜單欄時(shí),則可以選擇使用框架組件。 構(gòu)造一個(gè)框架后,可以用add()方法來(lái)給框架添加組件??蚣艿娜笔〔季止芾砥鲗傩允荁orderLayout。可以用setLayout()方式來(lái)改變布局管理器屬性。,補(bǔ)充知識(shí),3、對(duì)話框(Dialog) java.awt.Dialog也是Window的擴(kuò)展類。與框架相同的是,對(duì)話框也擁有邊界與標(biāo)題欄,而且也可以調(diào)整大??;而與框架不同的是,對(duì)話框不支持附加菜單欄,而且對(duì)話框可以模式化屬性設(shè)置,這是窗口和框架都不允許的。因此,如果用戶在程序設(shè)計(jì)過(guò)程中需要?jiǎng)?chuàng)建一個(gè)臨時(shí)窗口與用戶交換信息時(shí),使用模式對(duì)話框是最方便的。,補(bǔ)充知識(shí),另外,AWT中還提供了Dialog類的一個(gè)常用的擴(kuò)展類FileDialog(文件對(duì)話框)。它可以為用戶選擇一個(gè)待打開或保存的文件。 文件對(duì)話框是文件選擇設(shè)備的一個(gè)實(shí)現(xiàn)。它有自己的自由窗口以及窗口元素,并且允許用戶瀏覽文件系統(tǒng),以及為以后的操作選擇一個(gè)特定的文件。,一、 JFrame類,javax.swing包中的JFrame類是java.awt包中Frame類的子類。因此JFrame類及其子類創(chuàng)建的對(duì)象是窗體。由于Frame是重量容器,因此JFrame類或子類創(chuàng)建的對(duì)象(窗體)也是重量容器。 不可以將組件直接添加到swing窗體中,應(yīng)當(dāng)加到窗體的內(nèi)容面板容器中,程序可以通過(guò)調(diào)用getContentPane()方法獲得窗體的內(nèi)容面板。 程序要不可以設(shè)置窗體的布局,但可以設(shè)置內(nèi)容面板的布局,默認(rèn)布局為BorderLayout。(見例1),一、 JFrame類,一、 Frame常用方法 1JFrame() 該構(gòu)造方法可以創(chuàng)建一個(gè)無(wú)標(biāo)題的窗口,窗口的默認(rèn)布局為BorderLayout布局。 2JFrame(String s) 該構(gòu)造方法可以創(chuàng)建一個(gè)標(biāo)題為s的窗口,窗口的默認(rèn)布局為BorderLayout布局。 3public void setBounds(int a,int b,int width,int height) 窗口調(diào)用該方法可以設(shè)置出現(xiàn)在屏幕上時(shí)的初始位置是(a,b),即距屏幕左面a個(gè)像素、距屏幕上方b個(gè)像素;窗口的寬是width,高是height。,一、 JFrame類,4public void setSize(int width,int height) 設(shè)置窗口的大小,窗口在屏幕出現(xiàn)是默認(rèn)位置是(0,0)。 5public void setVisible(boolean b) 設(shè)置窗口是可見還是不可見,窗口默認(rèn)是不可見的。 6public void setResizable(boolean b) 設(shè)置窗口是否可調(diào)整大小,窗口默認(rèn)是可調(diào)整大小的。,二、 JApplet類,JApplet類也是用來(lái)建立java小應(yīng)用程序用的。JApplet是Javax.swing包中的類,它還是java.applet包中的Applet類的子類,因此JApplet對(duì)象也是一個(gè)重量容器。 它與Applet的區(qū)別主要是: 小程序容器中也含有一個(gè)內(nèi)容面板,添加組件,設(shè)置布局的工作只能通過(guò)設(shè)置該內(nèi)容面板來(lái)完成,不可以直接向小程序中添加組件,同樣通過(guò)調(diào)用getContentPane()方法獲得此面板。,三、 JDialog類,JDialog 是java.awt包中Dialog類的子類。JDialog類或子類創(chuàng)建的對(duì)象是也是重量容器,該對(duì)象必須依附一個(gè)JFrame對(duì)象。它的構(gòu)造方法如下: Jdialog(Jframe f,String s) 同樣對(duì)話框容器中也含有一個(gè)內(nèi)容面板,添加組件,設(shè)置布局的工作只能通過(guò)設(shè)置該內(nèi)容面板來(lái)完成,不可以直接向?qū)υ捒蛑刑砑咏M件,同樣通過(guò)調(diào)用getContentPane()方法獲得此面板。,四、中間容器,雖然所有的輕量級(jí)組件都是容器,但仍有一些經(jīng)常用來(lái)添加組件的輕量容器,相對(duì)于底層重量容器而言,習(xí)慣上稱這些輕量容器為中間容器。 這些容器有: 1、JPanel 面板 2、JScrollPane 滾動(dòng)面板 JscrollPane scroll=new JscrollPane(new JTextArea(),3、JSplitPane拆分窗格 JSplitPane(int a,boolean b,Component c,Component d) 參數(shù)a取值:HORIZONTAL_SPLIT(水平),VERTICAL_SPLIT(垂直)決定是水平還是垂直拆分容器。 參數(shù)b:決定當(dāng)拆分線移動(dòng)時(shí),組件是否連續(xù)變化。 參數(shù)c、d:代表窗格上要放的兩個(gè)組件。 4、JInternalFrame 內(nèi)部窗格 JInternalFrame(String title,boolean resizable,boolean closable,boolean max,boolean min) 其中的參數(shù)決定窗體是否能調(diào)整大小、關(guān)閉、最大化、最小化。,注: 1、內(nèi)部窗體和前面的中間容器有所不同,不能直接把組件加到容器中,而是要通過(guò)getContentPane()獲得內(nèi)容面板,然后將組件加到內(nèi)容面板中。 2、內(nèi)部窗體必須添加到JDesktopPane容器中才能顯示,該容器是專門為內(nèi)部窗體服務(wù)的。 3、內(nèi)部窗體需要顯示調(diào)用setVisible()、setSize()或setBound()才能使窗體可見和設(shè)置窗體大小。,五、事件處理機(jī)制,1、基本概念 (1)事件源:能夠產(chǎn)生事件的對(duì)象都可以成為事件源,如文本框、按鈕、下拉式列表等。也就是說(shuō),事件源必須是一個(gè)對(duì)象,而且這個(gè)對(duì)象必須是Java認(rèn)為能夠發(fā)生事件的對(duì)象。 (2)監(jiān)視器:事件處理需要一個(gè)對(duì)象對(duì)事件源進(jìn)行監(jiān)視,以便對(duì)發(fā)生的事件作出處理。事件源通過(guò)調(diào)用相應(yīng)的方法將某個(gè)對(duì)象作為自己的監(jiān)視器。例如,對(duì)于文本框,這個(gè)方法是: addActionListener(監(jiān)視器); 創(chuàng)建該監(jiān)視器對(duì)象的類必須聲明實(shí)現(xiàn)相應(yīng)的接口 ,一個(gè)監(jiān)聽器對(duì)象是一個(gè)實(shí)現(xiàn)了專門的監(jiān)聽器接口的類的實(shí)例(對(duì)象)。,(3)處理事件的接口:在組件(文本框)獲得輸入焦點(diǎn)之后,如果用戶按回車鍵,Java運(yùn)行系統(tǒng)就自動(dòng)用ActionEvent類創(chuàng)建了一個(gè)對(duì)象,即發(fā)生了ActionEvent事件 。當(dāng)事件源發(fā)生事件時(shí),監(jiān)視器就自動(dòng)調(diào)用執(zhí)行被類實(shí)現(xiàn)的某個(gè)相應(yīng)接口方法。 (4)Event handlers(事件處理器):接收事件對(duì)象、解釋事件對(duì)象并處理用戶交互的方法。 2、事件處理機(jī)制 事件由事件源產(chǎn)生,為了能處理相應(yīng)類型的事件,事件源必須使用相應(yīng)的方法獲得監(jiān)視器。當(dāng)事件發(fā)生時(shí),監(jiān)視器使用接口中的方法對(duì)事件進(jìn)行處理。,處理事件示意圖,3、實(shí)現(xiàn)步驟 (1)對(duì)java.awt中組件實(shí)現(xiàn)事件處理必須使用java.awt.event包,所以在程序開始應(yīng)加入import java.awt.event.*語(yǔ)句。 (2)定義事件處理器類(或?qū)崿F(xiàn)事件處理方法),用該類創(chuàng)建對(duì)象。 (3)用如下語(yǔ)句設(shè)置事件監(jiān)聽者: 事件源.addXXListener(XXListener代表某種事件監(jiān)聽者)。,(4)當(dāng)事件發(fā)生時(shí), Java運(yùn)行系統(tǒng)就自動(dòng)用監(jiān)聽器類創(chuàng)建了一個(gè)對(duì)象,該類就調(diào)用相應(yīng)的方法處理該事件,這樣就可以處理圖形用戶界面中的對(duì)應(yīng)事件了。要?jiǎng)h除事件監(jiān)聽者可以使用語(yǔ)句: 事件源.removeXXListener; 詳見例1。,補(bǔ)充: Java常用事件 _列表,六、布局,布局管理器會(huì)依據(jù)組件的加入順序決定其擺放方式。組件的大小、形狀、位置,在不同的布局管理器下有顯著的不同。此外,布局管理器會(huì)自動(dòng)適應(yīng)小程序或應(yīng)用程序窗口的大小,所以如果某個(gè)窗口的大小改變了,那么其上各個(gè)組件的大小、形狀、位置都有可能發(fā)生改變。,六、布局,Java提供以下幾種布局管理器:流布局(Fl-owLayout)、邊界布局(BorderLayout)、網(wǎng)格布局(GridLayout)、網(wǎng)格包布局(GridBagLayout)、卡片布局(CardLayout)和手工布局。 Panel、Applet的默認(rèn)布局為流布局, Window、Frame的默認(rèn)布局為邊界布局。容器可以使用方法:setLayout(布局對(duì)象);來(lái)設(shè)置自己的布局。,六、布局,1、FlowLayout布局 FlowLayout類創(chuàng)建的對(duì)象稱做FlowLayout型布局。FlowLayout型布局是Panel型容器的默認(rèn)布局,即Panel及其子類創(chuàng)建的容器對(duì)象,如果不專門為其指定布局,則它們的布局就是FlowLayout型布局。 如果一個(gè)容器使用這個(gè)FlowLayout型布局,組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列。,六、布局,六、布局,例1,FlowLayout flow=new FlowLayout(); flow.setAlignment(FlowLayout.LEFT); flow.setHgap(2); flow.setVgap(8); setLayout(flow);,六、布局,2、BorderLayout布局 BorderLayout 布局是Window型容器的默認(rèn)布局,例如Frame、Dialog都是Window類的子類,它們的默認(rèn)布局都是BorderLayout 布局。 如果一個(gè)容器使用這種布局,那么容器空間簡(jiǎn)單地劃分為東、西、南、北、中五個(gè)區(qū)域,中間的區(qū)域最大。,六、布局,注意:在邊界布局下add方法的使用方法: add(Component c, int position);,六、布局,其中參數(shù)position可取以下常量之一:BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.EAST,BorderLayout.WEST,BorderLayout.CENTER。 例如:下面語(yǔ)句將按鈕eastButton放置在東區(qū): add(eastButton, BorderLayout.EAST); 由于組件放置的位置必須由參數(shù)指定,因此可按任何順序向容器添加組件。,例2,Frame win=new Frame(“窗體“); win.add(bNorth,BorderLayout.NORTH); win.add(bSouth,BorderLayout.SOUTH); win.add(bEast,BorderLayout.EAST); win.add(bWest,BorderLayout.WEST); win.add(bCenter,BorderLayout.CENTER);,六、布局,3、CardLayout 布局 使用CardLayout 的容器可以容納多個(gè)組件,但是實(shí)際上同一時(shí)刻容器只能從這些組件中選出一個(gè)來(lái)顯示,就像一疊“撲克牌”每次只能顯示最上面一張一樣,這個(gè)被顯示的組件將占據(jù)所有的容器空間,依次排序。,例3,CardLayout mycard; mycard=new CardLayout(); pCenter=new Panel(); pCenter.setLayout(mycard); mycard.first(pCenter); mycard.next(pCenter); mycard.last(pCenter);,六、布局,4、GridLayout布局 網(wǎng)格布局將容器劃分成網(wǎng)格,這樣各個(gè)組件就可以按行列放置到每個(gè)網(wǎng)格中,每個(gè)組件的大小一樣(均分)。在向GridLayout添加組件時(shí),其順序是從網(wǎng)格的左上角開始,從左向右排列,直到排滿一行,再?gòu)南乱恍虚_始從左向右依次排列。GridLayout類的構(gòu)造函數(shù)如下:,六、布局,六、布局,GridLayout的布局策略是把容器劃分成若干行乘若干列的網(wǎng)格區(qū)域,組件就位于這些劃分出來(lái)的小格中。GridLayout比較靈活,劃分多少網(wǎng)格由程序自由控制,而且組件定位也比較精確 由于GridLayout布局中每個(gè)網(wǎng)格都是相同大小并且強(qiáng)制組件與網(wǎng)格的大小相同,使得容器中的每個(gè)組件也都是相同的大小,顯得很不自然。為了克服這個(gè)缺點(diǎn),你可以使用容器嵌套。,例4,GridLayout grid; grid=new GridLayout(12,12); setLayout(grid); Label label=new Label1212; labelij.setBackground(Color.black);,六、布局,5、BoxLayout布局 盒式布局的容器將組件排列在一行或一列,這取決于創(chuàng)建盒式布局對(duì)象時(shí),是否指定了是行排列還是列排列。 使用行(列)型盒式布局的容器將組件排列在一行(列),組件按加入的先后順序從左(上)向右(下)排列,容器的兩端是剩余的空間。和FlowLayou布局不同的是,使用行型盒式布局的容器只有一行(列),即使組件再多,也不會(huì)延伸到下一行(列),這些組件可能會(huì)被縮小大小,緊縮在這一行(列)中。,七、圖形用戶界面的各種組件介紹,1. 按鈕(JButton) JButton 類負(fù)責(zé)創(chuàng)建按鈕對(duì)象,與重量組件按鈕Button相比,JBtton按鈕具有更加豐富的外觀。 主要構(gòu)造方法: public JButton() public JButton(Icon icon) 主要實(shí)例方法: public void setText(String text) public void getText() public void addActionListener(ActionListener) 等詳細(xì)內(nèi)容見課本429頁(yè)。,2標(biāo)簽(JLabel) JLabel 類負(fù)責(zé)創(chuàng)建標(biāo)簽對(duì)象,與重量組件標(biāo)簽Label相比,JLabel標(biāo)簽具有更加豐富的外觀,例如我們可以創(chuàng)建帶圖標(biāo)的標(biāo)簽。 3復(fù)選框(JCheckBox) JCheckBox 類負(fù)責(zé)創(chuàng)建復(fù)選框?qū)ο?。與重量組件復(fù)選框Checkbox相比,JCheckBox復(fù)選框的名字不僅可以是字符串,而且它的樣子可以是一個(gè)圖標(biāo)。,4. 單選按鈕(JRadioButton) 單選按鈕和復(fù)選框很類似,所不同的是:在若干個(gè)復(fù)選框中我們可以同時(shí)選中多個(gè),而一組單選按鈕同一時(shí)刻只能有一個(gè)被選中。 5 .下拉列表(JComboBox) 用戶可以在下拉列表看到第一個(gè)選項(xiàng)和它旁邊的箭頭按鈕,當(dāng)用戶單擊箭頭按鈕時(shí),對(duì)于下拉式列表事件源,可以發(fā)生ItemEvent事件。,6. 文本框(JTextField)、密碼框JPasswordField、文本區(qū)(JTextArea) JTextField文本框、JTextArea文本區(qū)分別用于顯示單行文本和多行文本??梢允褂?setText(String)設(shè)置文本,getText()獲取文本,文本區(qū)還可以使用append(String)向文本區(qū)追加文本,口令框可以使用setEchoChar(char c)設(shè)置回顯字符等。 JTextField文本框還可以調(diào)用setHorizontalAlignment(int alignment)方法設(shè)置文本的對(duì)齊方式,其中alignment的有效值是JTextField.LEFT、JTextField.CENTER、JTextField.RIGHT 、JTextField.LEADING 、JTextField.TRAILING 。,7文件選擇器(JFileChooser) 文件選擇器是一個(gè)從文件系統(tǒng)中進(jìn)行文件選擇的界面。文件選擇器事實(shí)上并不能打開或保存文件,它們只能替你得到要打開或保存的文件對(duì)象,要想真正實(shí)現(xiàn)打開或保存,必須還得使用輸入、輸出流。 8進(jìn)度條 使用JProgressBar類創(chuàng)建進(jìn)度條組件。該組件能用一種顏色動(dòng)態(tài)地填充自己,以便顯示某任務(wù)完成的百分比。,9表格(JTable) 表格組件以行和列的形式顯示數(shù)據(jù),允許對(duì)表格中的數(shù)據(jù)進(jìn)行編輯。表格的模型功能強(qiáng)大、靈活并易于執(zhí)行。,八、 Component類的常用方法,Component類是所有組件的父類,這一節(jié)介紹 Component類的常用方法 。 1、組件的顏色 public void setBackground(Color c) 設(shè)置組件的背景色。 public void setForeground(Color c) 設(shè)置組件的前景色。 public Color getBackground() 獲取組件的背景色。 public Color getForeground() 獲取組件的前景色。,2、組件的字體 public void setFont(Font f) 組件調(diào)用該方法設(shè)置組件上的字體。例如,文本組件調(diào)用該方法可以設(shè)置文本組件中的字體。 public Font getFont() 組件調(diào)用該方法獲取組件上的字體。,3、組件的大小與位置 public void setSize(int width,int height) 組件調(diào)用該方法設(shè)置組件的大小,參數(shù)width指定組件的寬度,height指定組件的高度。 public void setLocation(int x,int y) 組件調(diào)用該方法設(shè)置組件在容器中的位置,包含該組件的容器都有默認(rèn)的坐標(biāo)系,容器的坐標(biāo)系的左上角的坐標(biāo)是(0,0),參數(shù)x,y指定該組件的左上角在容器的坐標(biāo)系中的坐標(biāo),即組件距容器的左邊界 x個(gè)像素,距容器的上邊界 y 個(gè)像素。 public Dimension getSize() 組件調(diào)用該方法返回一個(gè)Dimension對(duì)象的引用,該對(duì)像實(shí)體中含有名字是width 和height的成員變量,方法返回的Dimension 對(duì)象的width的值就是組件的寬度、height的值就是當(dāng)前組件的高度。,public Point getLocation() 組件調(diào)用該方法返回一個(gè)Point對(duì)象的引用,該對(duì)像實(shí)體中含有名字是x 和y的成員變量,方法返回的Point對(duì)象的x,y的值就是組件的左上角在容器的坐標(biāo)系中的x坐標(biāo)和y坐標(biāo)。 public void setBounds(int x,int y,int width,int height) 組件調(diào)用該方法設(shè)置組件在容器中的位置和組件的大小。該方法相當(dāng)于setSize方法和setLocation方法的組合。 public Rectangle getBounds() 組件調(diào)用該方法返回一個(gè)Rectangle對(duì)象的引用,該對(duì)象實(shí)體中含有名字是x、y、width 和height的成員變量,方法返回的Rectangle對(duì)象的x,y的值就是組件的左上角在容器的坐標(biāo)系中的x坐標(biāo)和y坐標(biāo),width和height的值就是當(dāng)前組件的寬度和高度。,4、組件的激活與可見性 public void setEnabled(boolean b) 組件調(diào)用該方法可以設(shè)置組件是否可被激活,當(dāng)參數(shù)b取值true時(shí),組件可以被激活,當(dāng)參數(shù)b取值false 時(shí),組件不可激活。默認(rèn)情況下,組件是可以被激活的。 public void setVisible(boolean) 設(shè)置組件在該容器中的可見性,當(dāng)參數(shù)b取值true時(shí),組件在容器中可見,當(dāng)參數(shù)b取值false 時(shí),組件在容器中不可見。除了Window型組件外,其它類型組件默認(rèn)是可見的。,5、組件上的光標(biāo) public void setCursor(Cursor c) 設(shè)置鼠標(biāo)指向組件時(shí)的光標(biāo)形狀。 可以使用 Cursor類的類方法直接獲得一個(gè)光標(biāo)對(duì)象,例如: Cursor c=Cursor. getPredefinedCursor (Cursor.HAND_CURSOR);,九、鼠標(biāo)事件,任何組件上都可以發(fā)生鼠標(biāo)事件,如:鼠標(biāo)進(jìn)入組件、退出組件、在組件上方單擊鼠標(biāo)、拖動(dòng)鼠標(biāo)等都觸發(fā)組件發(fā)生鼠標(biāo)事件,也就是說(shuō),組件可以成為發(fā)生鼠標(biāo)事件的事件源。 1、MouseListener接口,使用MouseListener接口可以處理5種操作觸發(fā)的鼠標(biāo)事件: (1)在事件源上按下鼠標(biāo)鍵。 (2)在事件源上釋放鼠標(biāo)鍵。 (3)在事件源上擊鼠標(biāo)鍵。 (4)鼠標(biāo)進(jìn)入事件源。 (5)鼠標(biāo)退出事件源。 鼠標(biāo)事件的類型是MouseEvent,即當(dāng)發(fā)生鼠標(biāo)事件時(shí),MouseEvent類自動(dòng)創(chuàng)建一個(gè)事件對(duì)象。,2、MouseListener接口中的方法: (1)mousePressed(MouseEvent) 負(fù)責(zé)處理在組件上按下鼠標(biāo)觸發(fā)的鼠標(biāo)事件,當(dāng)在組件上按下鼠標(biāo)時(shí),監(jiān)視器將自動(dòng)調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。 (2)mouseReleased(MouseEvent) 負(fù)責(zé)處理在組件上釋放鼠標(biāo)觸發(fā)的鼠標(biāo)事件,當(dāng)在組件上釋放鼠標(biāo)時(shí),監(jiān)視器將自動(dòng)調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。,(3)mouseEntered(MouseEvent) 負(fù)責(zé)處理鼠進(jìn)入組件觸發(fā)的鼠標(biāo)事件,當(dāng)鼠標(biāo)進(jìn)入組件上方時(shí),監(jiān)視器將自動(dòng)調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。 (4)mouseExited(MouseEvent) 負(fù)責(zé)處理鼠標(biāo)離開組件觸發(fā)的鼠標(biāo)事件,當(dāng)鼠標(biāo)離開組件時(shí),監(jiān)視器自動(dòng)調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。 (5)mouseClicked(MouseEvent) 負(fù)責(zé)處理在組件上單擊或連擊鼠標(biāo)觸發(fā)的鼠標(biāo)事件,當(dāng)單擊或連擊鼠標(biāo)時(shí),監(jiān)視器自動(dòng)調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。,3、MouseMotionListener接口 使用MouseMotionListener接口可以處理以下兩種操作觸發(fā)的鼠標(biāo)事件: (1)在事件源上拖動(dòng)鼠標(biāo)。 (2)在事件源上移動(dòng)鼠標(biāo)。, MouseMotionListener接口中有如下方法: (1)mouseDragged(MouseEvent) 負(fù)責(zé)處理在組件上拖動(dòng)鼠標(biāo)觸發(fā)的鼠標(biāo)事件,當(dāng)在組件上拖動(dòng)鼠標(biāo)時(shí),監(jiān)視器調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。 (2)mouseMoved(MouseEvent) 負(fù)責(zé)處理在組件上運(yùn)動(dòng)鼠標(biāo)觸發(fā)的鼠標(biāo)事件,當(dāng)在組件上運(yùn)動(dòng)鼠標(biāo)時(shí),監(jiān)視器調(diào)用接口中的這個(gè)方法對(duì)事件作出處理。,十、焦點(diǎn)事件,1、組件可以觸發(fā)焦點(diǎn)事件。組件可以使用 public void addFocusListener(FocusListener listener)增加焦點(diǎn)事件監(jiān)視器。 2、當(dāng)組件獲得焦點(diǎn)監(jiān)視器后,如果組件從無(wú)輸入焦點(diǎn)變成有輸入焦點(diǎn)或從有輸入焦點(diǎn)變成無(wú)輸入焦點(diǎn)都會(huì)觸發(fā)FocusEvent事件。創(chuàng)建監(jiān)視器的類必須要實(shí)現(xiàn)FocusListener 接口,該接口
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年海興縣三下數(shù)學(xué)期末達(dá)標(biāo)檢測(cè)試題含解析
- 深圳大學(xué)《面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025福建福州左臺(tái)置業(yè)有限公司項(xiàng)目建設(shè)合同制人員招聘33人筆試參考題庫(kù)附帶答案詳解
- 湖北文理學(xué)院理工學(xué)院《信息檢索與論文寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 徐州幼兒師范高等??茖W(xué)校《攝像實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽(yáng)城市建設(shè)學(xué)院《歷史學(xué)課程教學(xué)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭州工商學(xué)院《計(jì)算機(jī)組成實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院《建筑師執(zhí)業(yè)知識(shí)與設(shè)計(jì)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 海南政法職業(yè)學(xué)院《電子技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 伊犁師范大學(xué)《綠色制造技術(shù)(雙語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- 胸椎小關(guān)節(jié)紊亂診斷與治療-課件
- 四川省德陽(yáng)市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- Unit1Developingideaslittlewhitelies課件-高中英語(yǔ)外研版必修第三冊(cè)
- Unit 2 Listening and speaking 課件-高中英語(yǔ)人教版(2019)選擇性必修第二冊(cè)
- (參考)食品加工操作流程圖
- 員工面試登記表
- 鋼棧橋施工方案型鋼
- PySide學(xué)習(xí)教程
- 事業(yè)單位綜合基礎(chǔ)知識(shí)考試題庫(kù) 綜合基礎(chǔ)知識(shí)考試題庫(kù).doc
- 譯林初中英語(yǔ)教材目錄
- 物業(yè)交付后工程維修工作機(jī)制
評(píng)論
0/150
提交評(píng)論