(一)学习总结
1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解
Java事件处理三要素:
1) 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件;
2) 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等;
3) 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件;
public class AwtTest {
Frame f = new Frame("Event Test");
TextField tf = new TextField(30);
Button ok = new Button("OK");
class OkListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("OK button pushed!");
tf.setText("Hello!");
}
}
public void init() {
f.add(tf);
f.add(ok, BorderLayout.SOUTH);
ok.addActionListener(new OkListener());
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new AwtTest().init();
}
}
事件源-监听器多对多示例:
public class AwtTest {
Frame f = new Frame("Multiple Event Test");
TextArea ta = new TextArea(6, 40);
Panel p = new Panel();
Button btn1 = new Button("button1");
Button btn2 = new Button("button2");
class Listener1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("Listener1 be activated! Event Source:" + e.getActionCommand() + "\n");
}
}
class Listener2 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ta.append("Listener2 be activated! Event Source:" + e.getActionCommand() + "\n");
}
}
public void init() {
f.add(ta);
p.add(btn1);
p.add(btn2);
f.add(p, BorderLayout.SOUTH);
Listener1 l1 = new Listener1();
Listener2 l2 = new Listener2();
btn1.addActionListener(l1);
btn2.addActionListener(l1);
btn2.addActionListener(l2);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new AwtTest().init();
}
}
(二)实验总结
实验内容:
基本要求:
使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出
功能扩展:
用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
实现以下功能:
(1)显示所有宠物
(2)能够按照品种对宠物进行查找
(3)购买宠物
(4)显示购买清单
(5)退出
程序设计思路:
1.定义一个宠物信息Petmessage类,定义宠物的编号、姓名、种类、年龄、价格、数量属性和get、set方法。
2、定义一个宠物店的信息PetBase类,宠物店里有哪些宠物,用集合来存储宠物信息。
3,、定义一个管理员访问信息Administrator类,当访问宠物商店时展示商店里有那些宠物,并且定义添加宠物和删除宠物的方法。
4、定义一个管理员管理宠物AdministratorSever类,定义方法展示所有的宠物,定义添加方法添加宠物。
5、定义一个Tool类,确定视图中登录界面和展示界面的窗口位置。
(三)代码托管(https://git.oschina.net/hebau_cs15/shiyanqi.git)
•码云commit历史截图
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。