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

    java第七次作业

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

    <1>.java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。
    <2>事件监听器接口
    API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。如ActionListener接口处理ActionEvent事件。
    <3>事件处理步骤
    确定事件源:即发生事件的组件。
    Quit按钮
    确定事件类型:
    根据要处理事件确定事件类型。
    点击按钮事件是ActionEvent
    关闭窗口事件是WindowEvent
    <4>确定事件监听器接口,实现接口
    确定事件类型后,需要进一步确定处理该事件的监听器接口,如ActionEvent事件对应的接口是ActionListener。确定接口后,需要自定义事件处理类实现该接口。

    public class QuitHandler implements ActionListener{
          public void actionPerformed(ActionEvent arg0) {
    
            }
    }
    

    <5>覆盖监听器中特定的方法

    public void actionPerformed(ActionEvent arg0) {
            System.exit(0);
    }
    

    <6>事件源注册监听器
    每个组件都有一系列的addXXXListener方法,可以用来为组件注册不同的监听器。

          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();   //调用删除方法
    			}
    		});
    

    2.其他需要总结的内容。
    添加滚动条代码:

    JScrollPane scrollPane = new JScrollPane(textArea);    //创建滚动条,并指定添加位置
        scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); //设置滚动条形式
    

    (二)实验总结
    实验内容:
    基本要求:
    使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
    在管理界面实现以下功能:

    (1)显示所有宠物列表
    (2)添加宠物到列表
    (3)删除宠物
    (4)对宠物信息进行修改
    (5)退出
    功能扩展:
    用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
    实现以下功能:
    (1)显示所有宠物
    (2)能够按照品种对宠物进行查找
    (3)购买宠物
    (4)显示购买清单
    (5)退出
    完成实验内容,代码上传到码云,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
    格式如下:

    程序设计思路:
    1.定义欢迎窗口类。

    2.定义工具类,实现窗口组件的居中显示和显示窗口图标

    public class GUITools {
    	static Toolkit kit = Toolkit.getDefaultToolkit(); //Java提供的GUI默认工具类
    	//将指定组件屏幕居中
    	public static void center(Component c){
    		int x = (kit.getScreenSize().width - c.getWidth())/2;
    		int y = (kit.getScreenSize().height - c.getHeight())/2;
    		c.setLocation(x,y);
    	}
    	//设置窗口图标
    	public static void setTitleImage(JFrame frame,String titleIconPath){
    		frame.setIconImage(kit.createImage(titleIconPath));
    	}
    	
    }
    

    3.定义管理窗口类:定义查询、添加、修改、删除方法。

    4.定义实体类:类中的属性使用private封装,封装后的提供setter、getter方法
    5.定义存储数据类:使用集合模拟数据库存储数据的功能
    6.分层编写数据访问类、业务逻辑服务类
    (1)创建数据访问类
    (2)创建管理服务类,实现管理界面中查询、添加、修改、删除操作

    //添加方法
    	public void addPet() {
    		String addNo = addNoText.getText();
    		String addType = addTypeText.getText();
    		String addNu = addNuText.getText();
    		String addPrice = addPriceText.getText();
    		
    		boolean addSuccess = adminService.addPet(addNo,  addType,addNu, addPrice);
    		if(addSuccess){
    			queryPet(); //添加后刷新表格
    			addNoText.setText("");
    			addTypeText.setText("");
    			addNuText.setText("");
    			addPriceText.setText("");
    			
    		}else{
    			//没有添加成功弹窗错误提示
    			JOptionPane.showMessageDialog(this, "宠物编号不能重复,请检查数据");
    		}		
    	}
    	//修改方法
    	public void updatePet() {
    		String updateNo = updateNoText.getText();
    		String updateType = updateTypeText.getText();
    		String updateNu = updateNuText.getText();
    		String updatePrice = updatePriceText.getText();
    		boolean updateSuccess = adminService.updatePet(updateNo,  updateType,updateNu, updatePrice);
    		if(updateSuccess){
    			queryPet();
    			updateNoText.setText("");
    			updateTypeText.setText("");
    			updateNuText.setText("");
    			updatePriceText.setText("");
    			
    		}else{
    			JOptionPane.showMessageDialog(this, "没有这个编号的宠物,请检查数据");
    		}		
    	}
    	//删除方法
    	public void delPet() {
    
    		String delNo = delNoText.getText();
    		boolean delSuccess = adminService.delPet(delNo);
    		if(delSuccess){
    			queryPet();
    			delNoText.setText("");
    		}else{
    			JOptionPane.showMessageDialog(this, "没有这个编号的宠物,请检查数据");
    		}	
    	}	
    

    7.修改管理窗口类,提供管理界面完整的功能服务

    private AdminDao adminDao = new AdminDao();
    	//查询服务
    	public ArrayList<Pet> queryPet(){
    		//调用Dao层的方法获取所有数据
    		ArrayList<Pet> data = adminDao.queryAllData();
    		return data;		
    	}
    	//添加服务
    	public boolean addPet(String no,String type,String nu,String price){
    		ArrayList<Pet> data = queryPet();
    		Iterator<Pet> iterator = data.iterator();
    		while(iterator.hasNext()){
    			Pet pet = iterator.next();
    			//如果存在重复编号则添加不成功
    			if(pet.GetNo().equals(no)){
    				return false;
    			}			
    		}
    		
    		Pet thisPet = new Pet(no,type,nu,Double.parseDouble(price));
    		adminDao.addPet(thisPet);  //添加成功
    		return true;
    	}
    	//修改服务
    	public boolean updatePet(String no,String type,String nu,String price){
    		ArrayList<Pet> data = queryPet();
    		for(int i = 0; i < data.size();i++){
    			Pet pet = data.get(i);
    			if(pet.GetNo().equals(no)){
    				adminDao.delPet(no);
    				int age;
    				Pet thisPet = new Pet(no,type,nu,Double.parseDouble(price));
    				adminDao.addPet(thisPet);
    				return true;
    			}			
    		}
    		return false;
    	}
    	//删除服务
    	public boolean delPet(String no){
    		ArrayList<Pet> data = queryPet();
    		for(int i = 0; i < data.size();i++){
    			Pet pet = data.get(i);
    			if(pet.GetNo().equals(no)){
    				adminDao.delPet(no);				
    				return true;
    			}			
    		}
    		return false;
    	}
    }
    

    类图结构:

    (三)代码托管(务必链接到你的项目)
    码云commit历史截图
    上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

    https://git.oschina.net/hebau_cs15/java-cs02zt1.git

  • 相关阅读:
    HDU_1009_FatMouse' Trade
    WCF配置
    SQL Server ltrim(rtrim()) 去不掉空格
    安装VisualSVN Server 报"Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details"错误.原因是启动"VisualSVN Server"失败
    WPF 设置回车触发按钮时间
    WPF:验证登录后关闭登录窗口,显示主窗口的解决方法
    无法获取链接服务器 "XXX" 的 OLE DB 访问接口 "SQLNCLI10" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。
    The current identity ( XXXX) does not have write access to ‘C:WindowsMicrosoft.NETFrameworkv4.0.30319Temporary ASP.NET Files’.解决办法
    安装SQL sever2008时显示重新启动计算机规则失败,应该怎么解决?
    清楚数据库日志的方法
  • 原文地址:https://www.cnblogs.com/zhaotong189800/p/6842291.html
Copyright © 2011-2022 走看看