zoukankan      html  css  js  c++  java
  • Java第七次作业

    (一)学习总结

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

    1.Java事件处理机制

    (1)java事件处理是采取“委派事件模型”。
    (2) 事件源是一个产生(或触发)事件的对象。
    (3)事件就是承载事件源状态改变时的信息对象。java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。
    (4)事件监听器接口,API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。
    

    2.事件处理步骤

    (1)确定事件源
    确定事件源,即发生事件的组件。Quit按钮
    (2)确定事件类型
    确定事件源后,根据要处理事件确定事件类型。比如点击按钮事件是ActionEvent,关闭窗口事件是WindowEvent。
    (3)确定事件监听器接口,实现接口
    确定事件类型后,需要进一步确定处理该事件的监听器接口,如ActionEvent事件对应的接口是ActionListener。确定接口后,需要自定义事件处理类实现该接口。
    public class QuitHandler implements ActionListener{
          public void actionPerformed(ActionEvent arg0) {
            }
    }
    (4)覆盖监听器接口中的适当方法
    自定义类实现监听器接口后,需要覆盖监听器中特定的方法。
    public void actionPerformed(ActionEvent arg0) {
            System.exit(0);
    }
    (5)事件源注册监听器
    //添加监听器
        private void addListener() {
            //添加按钮监听
            addBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    addPet();  //调用添加方法
                }
            });
            //修改按钮监听
            updateBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    updatePet();  //调用修改方法
                }
            });
            //删除按钮监听
            delBtn.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    delPet();   //调用删除方法
                }
            });
            
        }
        
    添加监听器:
    public AdminDialog(Frame owner,boolean modal){
            super(owner,modal);
            this.init();            //初始化
            this.addComponent();    //添加组件
            this.addListener();     //添加监听器
            queryPet();       //创建对象时显示数据
        }
    

    3.使用内部类进行事件处理

    内部类是外部类的一个成员,可以直接使用外部类的属性和方法。
    

    4.使用匿名内部类进行事件处理

    send.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e) {
              output.append(input.getText()+"
    ");
              input.setText("");
         }
    });
    

    5.使用监听适配器进行事件处理

    在事件处理中提供了很多的Adapter(适配器)类,它们是监听器接口的默认实现类。
    KeyListener接口有三个方法:
    void keyTyped(KeyEvent e)  键入某个键时调用
    void keyPressed(KeyEvent e)  键盘按下时调用
    void keyReleased(KeyEvent e)  键盘松开时调用
    

    (二)实验总结

    实验内容:
    基本要求:
    使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
    在管理界面实现以下功能:
    (1)显示所有宠物列表
    (2)添加宠物到列表
    (3)删除宠物
    (4)对宠物信息进行修改
    (5)退出
    功能扩展:
    用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
    实现以下功能:
    (1)显示所有宠物
    (2)能够按照品种对宠物进行查找
    (3)购买宠物
    (4)显示购买清单
    (5)退出
    完成实验内容,代码上传到码云,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
    格式如下:

    程序设计思路:首先,创建进入界面,选择注册或登录;点击注册,进入注册界面,进行注册;进行新用户注册,调转到登录界面,或者点击登录直接进入登录界面,显示宠物管理页面,显示宠物清单
    创建一个主方法类,建vo包宠物类,用户类,数据包,图片,工具类,view包用户界面,管理员界面,注册界面,登录界面

    类图结构:

    问题1:注册的用户不能登录到页面
    原因:数据的存储和用户名和密码的判断问题

    问题2:注册时,迭代器不能正确判断最后一个的属性

    原因:迭代器最后一个只会没有下一个值不能进行判断
    解决方案:

    protected void Land() {
    		String name = addNameText.getText();
    		ArrayList<Per> data1 = DataBase.data1;
    		int a = 0;
    		for (int i = 0; i < data1.size(); i++) {
    			if (data1.get(i).getName().equals(name)) {
    				a = 1;
    			} else if (addPasswordText.getText().equals(
    					addPassword1Text.getText()) == false) {
    				a = 2;
    			}
    		}
    		if (a == 1) {
    			JOptionPane.showMessageDialog(this, "用户名重复,请重新注册!");
    		} else if (a == 2) {
    			JOptionPane.showMessageDialog(this, "两次密码输入不同,请重新输入!");
    		} else {
    			this.setVisible(false);
    			data1.add(new Per(name, addPasswordText.getText()));
    			JOptionPane.showMessageDialog(this, "注册成功!");
    			new Land().setVisible(true);
    		}
    	}
    

    (三)代码托管(务必链接到你的项目)

    https://git.oschina.net/hebau_cs15/FMM.git
    码云commit历史截图
    上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

  • 相关阅读:
    SQL CREATE DATABASE 语句
    SQL SELECT INTO 语句
    SQL UNION 和 UNION ALL 操作符
    复盘实战营一期毕业典礼----HHR计划----以太入门课--第一课
    抑郁研究所融资历程分享--以太一堂--直播课
    投资人分享答疑----HHR计划----以太直播课第三课
    重新理解《务实创业》---HHR计划--以太一堂第三课
    HHR计划---作业复盘-直播第三课
    电影推荐算法---HHR计划
    一堂优秀学员吕智钊分享----HHR计划----直播课第二课
  • 原文地址:https://www.cnblogs.com/miao0512/p/6833003.html
Copyright © 2011-2022 走看看