计科1501韩猛试验7

(一)学习总结

首先理解图形用户界面应用程序
(1)首先应该有主函数应用程序,以开头,是一切程序的前提
 import test.WelcomeFrame;
 public class MainApp {
	/**
 * 项目运行
 */
public static void main(String[] args) {
	new WelcomeFrame().setVisible(true);
}
}

 (2)初始化数据,将用户界面所需数据储存,初始化数据,初始化窗口信息
  import java.util.ArrayList;
 import keke.Pet;
 /**
 * 存储数据
 */
public class DataBase {
public static ArrayList<Pet> data = new ArrayList<Pet>();
//初始数据
static{
	data.add(new Pet("1","哮天犬","3","1",5000.00));		
	data.add(new Pet("2","奔波而把","2","2",10000.00));
	data.add(new Pet("3","把博尔奔","1","1",5500.00));
	data.add(new Pet("4","诸葛亮","2","2",2000.00));
	data.add(new Pet("5","李白","3","2",5000.00));
	data.add(new Pet("6","泥鳅怪","2","1",8000.00));	
}
}
 (3)当然要添加管理员访问类,从而对初始化后的程序进行获取,添加,删除等操作
 import java.util.ArrayList;
 import data.DataBase;
 import keke.Pet;
/**
 *  管理员数据访问类
 */
 public class AdminDao {
//获取所有数据
public ArrayList<Pet> queryAllData(){
	return DataBase.data;
}
//添加数据
public void addPet(Pet pet){
	DataBase.data.add(pet);
}
//删除数据
public void delPet(String delNo){
	for(int i = 0; i < DataBase.data.size();i++){
		Pet thisPet = DataBase.data.get(i);
		if(thisPet.getNo().equalsIgnoreCase(delNo)){
			DataBase.data.remove(i);
		}
	}
}	
} 

 (4)定义初始化的数据
 package keke;
 public class Pet {
private String No;
private String Name;
private String Number;
private String Age;
private Double Cost;
public Pet() {		
}
public Pet(String No,String Name,String Number,String Age, Double Cost){
	super();
	this.No=No;
	this.Name=Name;
	this.Number=Number;
	this.Age=Age;
	this.Cost=Cost;
}
public String getNo() {
	return No;
}
public void setNo(String no) {
	this.No = no;
}
public String getName() {
	return Name;
}
public void setName(String name) {
	this.Name = name;
}
public String getNumber() {
	return Number;
}
public void setColor(String number) {
	this.Number = number;
}
public String getAge() {
	return Age;
}
public void setAge(String age) {
	this.Age = age;
}	
public  Double getCost() {
	return Cost;
}
public void setCost( Double cost) {
	this.Cost = cost;
}
public String toString(){ 
	return "宠物的编号为:"+this.No+"宠物的名称为:"+this.Name+"宠物的年龄为:"+this.Age+"宠物的数量为:"+this.Number+"宠物的价格为:"+this.Cost;
}
}

 (5)定义服务类,对界面中添加 删除 修改等应用进行写算法定义
/**
 * 管理员服务类
*/
public class AdminService {
private AdminDao adminDao = new AdminDao();
//查询服务
public ArrayList<Pet> queryPet(){
	//调用Dao层的方法获取所有数据
	ArrayList<Pet> data = adminDao.queryAllData();
	return data;		
}
//添加服务
public boolean addPet(String no,String name,String age,String number,String cost){
	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,name,age,number,Double.parseDouble(cost));
	adminDao.addPet(thisPet);  //添加成功
	return true;
}
//修改服务
public boolean updatePet(String no,String name,String age,String number,String cost){
	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);
			Pet thisPet = new Pet(no,name,age,number,Double.parseDouble(cost));
			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;
}

}

(6)书写test类 ,构造所需方法

public AdminDialog(Frame owner,boolean modal){
	super(owner,modal);
	this.init();            //初始化
	this.addComponent();    //添加组件
	this.addListener();     //添加监听器
	queryPet();       //创建对象时显示数据
}

添加监听器,当需要调用应用包的时候会自动调用运行

声明
import java.awt.Frame;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.ArrayList;
 import javax.swing.JButton;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
 import javax.swing.JTextField;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableModel;
 import service.AdminService;
 import tools.GUITools;
 import keke.Pet;


 对按钮,界面需定义位置:如

	addNoText.setBounds(50, 280, 80, 25);
	addNameText.setBounds(150, 280, 80, 25);
	addAgeText.setBounds(250, 280, 80, 25);
	addNumberText.setBounds(350, 280, 80, 25);
	addCostText.setBounds(450, 280, 80, 25);
	
(二)实验总结

实验内容:
基本要求:
使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
 (5)退出
 具体操作步骤上述已述
 操作截图


码云托管
git@git.oschina.net:qq2546914025/jike1501hanmengshiyan7.git

posted @ 2017-05-11 19:26  一头气质熊  阅读(134)  评论(0编辑  收藏  举报