寫出事件處理模型中的幾個關鍵詞,並經過具體代碼實例說明你對事件處理模型的理解。java
(1)事件源是一個產生(或觸發)事件的對象。當這個事件源對象的某些狀態以某種方式發生變化時,就會產生某種類型的事件(一個事件源可能會生成多個不一樣類型的事件)。
(2)若是某個組件(對象)但願獲得事件源產生的事件,就須要在這個事件源上註冊git
(1)事件就是承載事件源狀態改變時的信息對象。
(2)java.awt.event包和javax.swing.event包中定義了各類事件類,類名以Event結尾工具
事件源產生一個事件,能夠傳送給事件監聽者處理。 事件監聽者實際上就是一個類,該類實現了某個事件監聽器接口,對接受到的事件進行處理學習
import java.awt.Color; import javax.swing.JFrame; public class MyWindowEventJFrame{ public static void main(String [] args){ JFrame frame=new JFrame("Wclcome To MLDN"); frame.addWindowListener(new MyWindowEventHandle()); frame.setSize(300,160); frame.setBackground(Color WHITE); frame.setLocation(300,200); frame.setVisible(true); } }
程序設計思路:設計一個登陸類,定義屬性用戶名、密碼,方法判斷用戶名及密碼,設一個登陸界面登陸,設計一個寵物類,定義屬性寵物屬性編號、品種、年齡、數量、價格,建一個數據類用來存放數據,建一個寵物管理界面,能夠添加修改刪除寵物,也能夠退出,設計一個工具來,定義界面方法,設計一個獲取數據類來訪問數據.net
實驗問題分析:設計
問題1:code
if(arg0.getSource()==submit){ //判斷觸發源是否提交按鈕
String tname=nameText.getText();
String tpass=new String(passText.getPassword());
LoginCheck log=new LoginCheck(tname,tpass);
if(log.validate()){
infoLab.setText("登陸成功!");
showAdminDialog();orm
} else{ infoLab.setText("登陸失敗,錯誤的用戶名或密碼!"); } } }
緣由:登錄成功後不能彈出寵物管理界面對象
解決方案:定義一個出現界面的方法,在登錄成功後調用blog
問題2:
public void showAdminDialog(){
frame.setVisible(false);
new AdminDialog().setVisible(true);
}
public void setVisible(boolean b) {
// TODO Auto-generated method stub
}
緣由:setVisible(false)沒有定義方法
解決方案:添加一個setVisible(boolean b) 方法,即可以調用該方法
問題3:
addBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ addPetItem(); //調用添加方法 } }); //修改按鈕監聽 updateBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ updatePetItem(); //調用修改方法 } }); //刪除按鈕監聽 delBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ delPetItem(); //調用刪除方法 } });
緣由:不能刪除、修改寵物
解決方案:把調用方法都錯寫爲了addPetItem(),分別改成updatePetItem()、delPetItem()方法
類圖