第七次作业

Java第七次作业--图形用户界面

(一)学习总结

1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。
事件:一个对象的发生状态变化。
事件对象:事件发生时所带的信息。
事件源:能够产生事件的GUI组件对象。
事件监听器:当事件发生时,事件监听器对象会得到通知,他所事先准备好的事件处理方法被调用。这些事件处理方法的参数中,将引用到相应的事件对象。
事件的处理流程:
事件源-->处理事件方法--->是否有监听事件处理器,如果有监听的话,就用特定事件的处理方法,找到注册的事件监听器,如果没有在监听的话就放弃事件。
JAVA事件委托处理模型的使用方法:
1:写出一个事件监听器接口
2:创建此事件的监听对象
3:对事件源组件调用
不同的事件携带不同的信息对应不同的监听接口。windowsListener是专门处理窗体的事件监听窗口。
内部类SendHandler进行事件处理时,只需实例化一个对象作为Send按钮的ActionEvent事件的监听器对象,那么就可以使用匿名内部类来实现。

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

(二)实验总结

程序设计思路
首先设置WelcomeFrame类来设置用户的登录界面,设置构造方法添加组件,Animals类即是设置登录界面成功后里面存放数据,添加删除,的组件。AnimalItem类来设置动物基本属性的get()和set()方法,Date类来存放商店的宠物的信息,Admin类来设置管理员对数据的取得删除等操作,Service类就是用户进行添加删除修改操作时要进行的,对用户进行的操作进行判断并执行,如果编号与原有的宠物编号相同则不能进行修改和添加数据。
类图结构:
问题1:

private String[][] listToArray(ArrayList<AnimalItem> list) {
		String[][] tbody = new String[list.size()][5];
		for(int i = 0; i < list.size();i++){
			AnimalItem animal = list.get(i);
			tbody[i][0] =animal.getNumber();
			tbody[i][1] = animal.getVariety();
			tbody[i][2] =animal.getAge()+"";
			tbody[i][3] = animal.getNum()+"";
			tbody[i][4] = animal.getPrice()+"";
		}
		return tbody;
	}

因为tbody二维数组是String 类型的,而age,num,price是int和double类型的,所以加+"",转换成String。
问题二:

public boolean addAnimalItem(String number,String name,String age,String num,String price){
		ArrayList<AnimalItem> data = queryAnimalItem();
		Iterator<AnimalItem> iterator = data.iterator();
		while(iterator.hasNext()){
			AnimalItem fruit = iterator.next();
			//如果存在重复编号则添加不成功
			if(fruit.getNumber().equals(number)){
				return false;
			}			
		}
		AnimalItem thisAnimal = new AnimalItem(number,name,Double.parseDouble(age),Integer.parseInt(num),Double.parseDouble(price));
		admin.addAnimalItem(thisAnimal);  //添加成功
		return true;
	}

在服务类也涉及到类型的转换
double 向String转换Double.parseDouble(age)
int类型向String转换Integer.parseInt(num).

(三)代码托管(务必链接到你的项目)
http://git.oschina.net/hebau_cs15/Java-cs02QSM/commits/master

码云commit历史截图
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

posted on 2017-05-11 20:14  昨夜蔷薇  阅读(109)  评论(0)    收藏  举报