任務(wù)8——處理登錄界面中的事件_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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)介

1、任務(wù)8——處理登錄界面中的事件,學(xué)習(xí)情境二(考試系統(tǒng)單機(jī)版),學(xué)習(xí)目標(biāo),熟悉事件處理機(jī)制中的三要素,即事件源、事件(對(duì)象)、事件監(jiān)聽(tīng)器。理解事件類、事件監(jiān)聽(tīng)器接口與事件處理者的對(duì)應(yīng)關(guān)系。掌握動(dòng)作事件的相關(guān)定義及事件處理。熟悉鍵盤事件、焦點(diǎn)事件、鼠標(biāo)事件、窗口事件的相關(guān)定義及事件處理。,8.1 任務(wù)描述,登錄界面中的【登錄】按鈕事件響應(yīng),8.1 任務(wù)描述(續(xù)),,,登錄界面中的【注冊(cè)】按鈕事件響應(yīng),登錄界面中的【登錄】按鈕事件響應(yīng),

2、8.2 技術(shù)要點(diǎn),動(dòng)作事件(ActionEvent類 ) 鍵盤事件(KeyEvent類)焦點(diǎn)事件(FocusEvent類) 鼠標(biāo)事件(MouseEvent類) 窗口事件(WindowEvent類),動(dòng)作事件(ActionEvent類 ),動(dòng)作事件(ActionEvent類 ),動(dòng)作事件的監(jiān)聽(tīng)器接口ActionListener中只包含一個(gè)方法,語(yǔ)法格式如下:public void actionPerform(ActionEve

3、nt e)重寫該方法對(duì)ActionEvent事件進(jìn)行處理,當(dāng)ActionEvent事件發(fā)生時(shí)該方法被自動(dòng)調(diào)用,形式參數(shù)e引用傳遞過(guò)來(lái)的動(dòng)作事件對(duì)象。Java圖形用戶界面中處理事件時(shí)所必需的步驟是:(1)確定接受響應(yīng)的組件并創(chuàng)建它。(2)實(shí)現(xiàn)相關(guān)事件監(jiān)聽(tīng)接口。(3)注冊(cè)事件源的動(dòng)作監(jiān)聽(tīng)器。(4)事件觸發(fā)時(shí)要進(jìn)行的相關(guān)處理,舉例 ButtonListener.java,import java.awt.*;import jav

4、a.awt.event.*;import javax.swing.*;class ButtonListener extends JFrame implements ActionListener{ //實(shí)現(xiàn)監(jiān)聽(tīng) JButton ok, cancel,exit; public ButtonListener(String title){ super(title); this.setLayout(new FlowLayout()

5、); ok = new JButton("確定"); cancel = new JButton("返回"); exit = new JButton("退出"); ok.addActionListener(this); //注冊(cè)監(jiān)聽(tīng)器 cancel.addActionListener(this) ; exit.addActionListener(this

6、); getContentPane().add(ok); getContentPane().add(cancel); getContentPane().add(exit);},//完成事件觸發(fā)時(shí)的相關(guān)處理public void actionPerformed(ActionEvent e){ if(e.getSource()==ok) System.out.println("確定");if(

7、e.getSource()==cancel)System.out.println("返回");if(e.getSource()==exit)System.exit(0);;}public static void main(String args[]) { ButtonListener pd=new ButtonListener("ActionEvent Demo"); pd.se

8、tSize(250,100); pd.setVisible(true); }},鍵盤事件(KeyEvent類),舉例 KeyEventDemo.java,1 import java.awt.*;2 import java.awt.event.*;3 import javax.swing.*;4 public class KeyEventDemo extends JFrame implements

9、 KeyListener{5 static KeyEventDemo frm=new KeyEventDemo(); 6 static JTextField tf=new JTextField(20);7 static JTextArea ta=new JTextArea("",5,20);8 public static void main(String args[]

10、){9 frm.setSize(200,150);10 frm.setTitle("KeyEvent Demo");11 frm.setLayout(new FlowLayout(FlowLayout.CENTER));12 tf.addKeyListener(frm); 13 ta.setEditable(false); 14

11、 frm.add(tf); 15 frm.add(ta);16 frm.setVisible(true); 17 },18 // 當(dāng)tf組件觸發(fā)KeyEvent事件時(shí),根據(jù)事件的種類執(zhí)行下列的程序代碼19 public void keyPressed(KeyEvent e){ // 當(dāng)按鍵按下時(shí)20 ta.setText("");

12、21 ta.append("keyPressed() 被調(diào)用\n");22 }23 public void keyReleased(KeyEvent e){ // 當(dāng)按鍵放開(kāi)時(shí)24 ta.append("keyReleased() 被調(diào)用\n");25 } 26 public void keyTyped(KeyEvent e)

13、{ // 鍵入內(nèi)容時(shí)27 ta.append("keyTyped() 被調(diào)用\n");28 }29 },焦點(diǎn)事件(FocusEvent類),舉例 FocusEventDemo.java,1 import java.awt.*;2 import java.awt.event.*;3 import javax.swing.*;4 public class FocusE

14、ventDemo extends JFrame implements FocusListener{5 JTextField tf=new JTextField(" 文本框 ");6 JButton jb=new JButton(" 按 鈕 ");7 JLabel jlab=new JLabel(" ");8 public FocusEven

15、tDemo(String title){9 super(title);10 this.getContentPane().add(jlab,"North");11 this.getContentPane().add(tf,"Center");12 this.getContentPane().add(jb,"South");13 tf.ad

16、dFocusListener(this);14 }15 public void focusGained(FocusEvent e){16 if(e.getSource()==tf) 17 jlab.setText(" 文本框獲得焦點(diǎn)");18 }28 },19 public void focusLost(FocusEvent e){20 if(e.getSource(

17、)==tf)21 jlab.setText(" 文本框失去焦點(diǎn)"); 22 }23 public static void main(String[] args){24 FocusEventDemo f=new FocusEventDemo("FocusEvent Demo");25 f.setSize(300,200);26 f.setVi

18、sible(true);27 },鼠標(biāo)事件(MouseEvent類),與MouseEvent相對(duì)應(yīng)的鼠標(biāo)事件監(jiān)聽(tīng)接口分為MouseListener 和MouseMotionListener。,MouseListener接口,MouseListener接口主要處理鼠標(biāo)單擊、按下、釋放、移入組件和移出組件的事件 。,MouseMotionListener接口,MouseMotionListener接口負(fù)責(zé)處理與鼠標(biāo)拖放和移動(dòng)相關(guān)的事件

19、,該接口包含2個(gè)方法。,窗口事件(WindowEvent類),WindowEvent事件是發(fā)生在窗口對(duì)象上的事件,當(dāng)用戶或應(yīng)用程序在打開(kāi)、關(guān)閉、最大或最小化窗口等時(shí)觸發(fā)WindowEvent事件。處理WindowEvent事件需要實(shí)現(xiàn)windowListener接口,其中聲明了7個(gè)用來(lái)處理不同事件的抽象方法 。,舉例 MouseAndWindowsEvent.java,1 import java.awt.*;2 import ja

20、va.awt.event.*;3 import javax.swing.*;4 public class MouseAndWindowsEvent implements MouseListener,MouseMotionListener,WindowListener{5 private JFrame f;6 private JTextField tf;7 public static void main(Str

21、ing args[]){8 MouseAndWindowsEvent ml = new MouseAndWindowsEvent();9 ml.go();10 }11 public void go(){12 JFrame f = new JFrame("Mouse and Windows Event Demo");13 f.getContentPane().add( new

22、 Label("鼠標(biāo)活動(dòng)區(qū)域"), "North" );14 tf = new JTextField(30);15 f.getContentPane().add(tf, "South");16 f.addMouseListener(this);17 f.addMouseMotionListener(this);18 f.addWindow

23、Listener(this);19 f.setSize(330,200);20 f.setVisible(true);21 }22 //MouseMotionListener23 public void mouseDragged(MouseEvent e){24 tf.setText("The Mouse Dragged");25 }26 public void mous

24、eMoved(MouseEvent e){27 tf.setText("The mouse Moved");28 },舉例MouseAndWindowsEvent.java(續(xù)),29 //MouseListener30 public void mouseEntered(MouseEvent e){31 tf.setText("The mouse Entered");32

25、}33 public void mouseExited(MouseEvent e){34 tf.setText("The mouse Exited");35 }36 public void mouseClicked(MouseEvent e){37 tf.setText("The mouse Clicked");38 }39 public void m

26、ousePressed(MouseEvent e){}40 public void mouseReleased(MouseEvent e){}41 public void windowClosing(WindowEvent e){42 System.exit(1);43 }44 public void windowClosed(WindowEvent e){}45 public void windowOpene

27、d(WindowEvent e){}46 public void windowIconified(WindowEvent e){}47 public void windowDeiconified(WindowEvent e){}48 public void windowDeactivated(WindowEvent e){}49 public void windowActivated(WindowEvent e){50

28、 tf.setText("The window Activated");51 }52 },運(yùn)行效果,,,,,8.3 任務(wù)實(shí)施——登錄模塊中的事件處理代碼,1 public void actionPerformed(ActionEvent e){2 if(e.getSource()==loginbtn){3 if(namefield.getText().trim().equals(&quo

29、t;")){4 JOptionPane.showMessageDialog(null,"\t請(qǐng)輸入用戶名!","用戶名空提示",JOptionPane.OK_OPTION);5 }6 else{7 if(new String(pwdfield.getPassword()).equals("")){8 JOpti

30、onPane.showMessageDialog(null,"\t請(qǐng)輸入密碼!","密碼空提示",JOptionPane.OK_OPTION);9 }10 else{11 if(namefield.getText().trim().equals("JSIT") &&(new String(pwdfield.ge

31、tPassword()).equals("123456"))){12 new Test_GUI(namefield.getText().trim());//進(jìn)入考試界面13 iframe.dispose();14 }15 }16 }17 }18 if(e.getSource()==registerbtn){19

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論