《Java技术》第七次作业

《Java技术》第七次作业

(一)学习总结

1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。
事件对象(Event object) 事件源(Event Source) 事件监听器(Event Listener)
事件处理模型理解:
编写事件处理程序的基本流程:

  • 确定事件源

  • 确定事件类型

  • 实现监听器类:编写一个类,覆盖监听器接口中的适当方法,至少要实现一种类型的监听器接口,并实现接口中所有的事件处理方法;

  • 创建组件,并对组件注册相应的监听器,需要创建监听器对象,将监听器对象作为参数传入组件的add

  • XxxListener方法完成注册;

  • 简单的示例:

     import java.awt.BorderLayout;
     import java.awt.event.ActionEvent;
     import java.awt.event.ActionListener;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     import javax.swing.JButton;
     import javax.swing.JFrame;
     import javax.swing.JTextField;
     public class AwtTest {   
     	JFrame f = new JFrame("Say Hello");  //实例化窗口对象
     	JTextField tf = new JTextField(30);  //定义文本框,并指定长度
     	JButton ok = new JButton("OK");   //添加OK按钮
     	class OkListener implements ActionListener {  //实现ActionListener接口
     		public void actionPerformed(ActionEvent e) {
     			tf.setText("Hello!");  
     		}   
     	}
     	public void init() {  
     		f.add(tf);  //把组件tf加入容器中
     		f.add(ok, BorderLayout.SOUTH);//将ok放在南区域并加入组件   
     		ok.addActionListener(new OkListener());  
     		f.addWindowListener(new WindowAdapter(){   //加入窗口监听
     			public void windowClosing(WindowEvent aeg0){  
     				//覆写窗口关闭的方法
     				System.exit(1);
     			}
     		});
     		f.setSize(230,100);   //设置窗口大小
     		f.setVisible(true);  //让组建显示
     	}   
     	public static void main(String[] args) {
     		new AwtTest().init();  
     	}   
     }  
    

(二)实验总结

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

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

  • 程序设计思路:
    1、先设计一个PetItem类,包含number、name、age、cno、price属性,并写出get、set方法。设计一个Administrator类,包含name、mi属性,并写出get、set方法,编写一个验证方法。
    2、设计存贮数据DataBase类,将数据存贮在ArrayList中,给出初始数据。
    3、设计数据访问AdminDao类,包含获取所有数据,添加数据,删除数据等方法。
    4、设计服务AdminService类,包含查询服务,添加服务,修改服务,删除服务等方法,查询服务要调用AdminDao类的queryAllData()方法,获取所有数据。
    5、设计WelcomeFrame类,声明一个图片组件和一个按钮组件,设计一个设置窗体的函数,包括窗体大小、窗体位置、标题。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。
    6、设计Adminis类,声明一个按钮、两个标签,设计一个设置窗体的函数,包括窗体大小、窗体位置、。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。设计一个修改的方法调用Administrator类的验证方法。
    7、设计系统管理界面, AdminDialog类,定义界面使用的组件,使用JTextField组件输入文本,编写构造方法,初始化方法,添加组件,添加监听器,编写查询方法,调用adminService的查询服务,编写添加方法,删除方法,修改方法。
    8、编写工具类,方便WelcomeFrame类调用。
    9、设计主方法,调用WelcomeFrame().setVisible(true),运行项目。
    类图

(三)代码托管

  • 码云commit历史截图

(四)学习进度条

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 100/100 20/20 学习了数组和方法
第5周 200/300 30/50 学习了String类和StringBuffer类
第6周 800/1100 40/90 学习了this、static关键字,Singleton模式
第八周 1200/1700 60/110 继承和多态,抽象方法
第九周 1500/2000 70/120 接口、工厂设计模式、包装类、匿名内部类、日期类、正则表达式
第十周 1900/2400 80/130 异常处理、泛型、集合
第十一周 2500/3000 100/150 用户图形界面、事件处理
posted @ 2017-05-11 19:26  .M  阅读(172)  评论(0)    收藏  举报