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

    《Java技术》第七次作业

    (一)学习总结

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

    • 事件源:是一个产生(或触发)事件的对象。当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能会生成多个不同类型的事件)。如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。

    • 事件:就是承载事件源状态改变时的信息对象。java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。

    • 事件监听器接口:API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。如ActionListener接口处理ActionEvent事件。

    • 事件源产生一个事件,可以传送给事件监听者处理。事件监听者实际上就是一个类,该类实现了某个事件监听器接口,对接受到的事件进行处理。

    • 事件处理的基本步骤:
        1. 首先产生监听器,监听是否有事件源的产生.
        2. 在要实现具有事件处理功能的组件上注册监听器.
        3. 注册监听器的组件产生事件源,并将事件对象返回给监听器.
        4. 有监听器调用相应的方法处理事件.
      例如:

    //添加一个监听器,用来监听btn按钮
    private void addListener() {	
    		btn.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e){
    				showAdminDialog();               //事件发生调用该方法
    			}
    		});		
    

    (二)实验总结

    实验内容:
    使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
    在管理界面实现以下功能:
    (1)显示所有宠物列表
    (2)添加宠物到列表
    (3)删除宠物
    (4)对宠物信息进行修改
    (5)退出
    功能扩展:
    用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
    实现以下功能:
    (1)显示所有宠物
    (2)能够按照品种对宠物进行查找
    (3)购买宠物
    (4)显示购买清单
    (5)退出

    完成实验内容,代码上传到码云,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。

    • 程序设计思路:创建一个数据库,将宠物类和用户类存入,用户类中设置ArrayList属性,用来存放购买的宠物,实现三个主方法,管理员登陆,用户注册,用户登录,设置管理员服务类和用户服务类,在类内实现添加,删除和修改内容,在用户服务类中实现购物清单和按类型查找的功能。

    • 欢迎界面

    • 注册界面

    • 用户界面

    • 问题1:无法调用数据库中的用户类。

    • 原因:数据库中的用户类应为static类型

    • 解决方案:

    public static ArrayList<User> data2 = new ArrayList<User>();
    
    • 问题2:用户的查找和购买清单功能,如果重新写一个表格或者界面过于复杂。
    • 原因:直接生成消息窗口,使用StringBuffer来输出信息
    • 解决方案:
    for(int i=0;i<user.get(0).getPet().size();i++){
    			sum = sum+user.get(0).getPet().get(i).getPrice();
    			buf.append(user.get(0).getPet().get(i).getKind()+"   价格: "+user.get(0).getPet().get(i).getPrice()+"
    ");		
    		}
    		JOptionPane.showMessageDialog(this,buf+"
    总价格"+sum);
    

    (三)代码托管

    • 码云commit历史截图
  • 相关阅读:
    python检测挖矿特征的几种方式
    python检测当前端口是否使用
    matlab界面UI设计资料
    python中struct.pack()函数和struct.unpack()函数
    网络编程:主机字节序和网络字节序
    【原创】python中文编码问题深入分析(三):python2.7文件读写中文编码问题
    【原创】python中文编码问题深入分析(二):print打印中文异常及显示乱码问题分析与解决
    ivew定制主题 less ^3.0 时报错 .bezierEasingMixin(); Inline JavaScript is not enabled. Is it set in your options?
    Vue子组件中 data 从props中动态更新数据
    Vue 自动吸顶
  • 原文地址:https://www.cnblogs.com/cheng666/p/6839820.html
Copyright © 2011-2022 走看看