Java技术第七次作业

《Java技术》第七次作业

(一)学习总结


1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。

  • 事件就是表示一个对象的发生状态变化。
  • 基本事件及其监听处理:
  • 窗体事件及监听处理:使用匿名内部类完成监听操作
  1. Java事件处理三要素:

    1. 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件;
    2. 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等;
    3. 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件;
  2. 事件处理的机制:

    1. 首先事件是有不同的类别的,比如按钮单击、菜单项单击等事件就属于“动作事件”(Action Event),而关闭窗口、最小化窗口等事件就属于“窗口事件”(Window Event);
    2. 不同类型的事件需要用不同类型的监听器监听;
    3. 而监听器是一种类对象,这种类必须实现监听器接口(Listener),对于监听不同类型的事件AWT库准备了不同类型的监听器接口,比如要监听动作事件就必须实现ActionListener接口,监听窗口事件就必须实现WindowListener接口;
      !监听器中最重要的就是事件处理方法了,监听器必须在接受事件之后进行处理(响应);
    4. 如何实现监听?
      i. 首先事件源(发生事件的组件)必须同意我身上发生的事件允许那些监听器监听;
      ii. 也就是说想监听它身上发生的事件的监听器必须到它这里注册,即组件必须调用方法addXxxListener将监听器注册到它的监听器列表中;
      iii. 当事件发生时就会将事件对象(Event)发送到所有注册过的监听器那里进行处理;
  3. 编写事件处理程序的基本流程:

    1. 首先需要实现监听器类:自己编写一个类,至少要实现一种类型的监听器接口,并实现接口中所有的事件处理方法;

    2. 创建组件,并对组件注册响应的监听器:首先需要创建监听器对象,将监听器对象作为参数传入组件的addXxxListener方法完成注册;

    3. 全部工作完成,事件的处理完全自动进行;

    4. 简单的示例:处理一个按钮的单击事件
      `

      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();
      }

      } `

(二)实验总结


实验内容:

1.宠物商店系统

实验内容:

基本要求:

使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出
根据老师给出的代码,理解其内容,做出相应的修改,完成宠物商店界面的设置
类图

程序设计思路:
1.定义一个宠物信息PetItem类,定义宠物的编号、姓名、种类、年龄、价格、数量属性和get、set方法。

2、定义一个宠物店的信息DataBase类,宠物店里有哪些宠物,用集合来存储宠物信息。

3,、定义一个管理员访问信息Administrator类,当访问宠物商店时展示商店里有那些宠物,并且定义添加宠物和删除宠物的方法。

4、定义一个管理员管理宠物AdministratorSever类,定义方法展示所有的宠物,定义添加方法添加宠物。

5、定义一个Tool类,确定视图中登录界面和展示界面的窗口位置。

问题1:无论输入什么用户名密码,都能进入。
原因:用户名和密码的判断问题
解决方案:
`

  public boolean findAdminData(String name, String password) {

	if ("shiziyu".equals(name) && "2015614840326".equals(password))

	{

		return true;
	}
	return false;

}

}`

问题2:最后退出失败
原因:退出函数错误
解决方案:
public void exPetItem() { this.setVisible(false); //退出 JOptionPane.showMessageDialog(this, "退出成功"); } }

(三)代码托管

  • 码云commit历史截图
posted @ 2017-05-11 11:58  暖宝宝。  阅读(239)  评论(0编辑  收藏  举报