计科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)退出
 具体操作步骤上述已述
 操作截图

1080029-20170511192203316-684153056.png
1080029-20170511192215410-773967872.png

码云托管
git@git.oschina.net:qq2546914025/jike1501hanmengshiyan7.git
1080029-20170511192541301-1214519513.png

转载于:https://www.cnblogs.com/hm2546914025-/p/6842361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值