第七次作业
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”,设置搜索时间段,搜索本周提交历史,并截图。

浙公网安备 33010602011771号