图书管理项目 第一天 user用户模块

来源:互联网 发布:matlab从txt读取数据 编辑:程序博客网 时间:2024/05/21 15:21

主要学习 增,删,改,查

   1)  用户层   ,逻辑层  ,数据层的调用;

    2) 数据的收集

    3) 数据的封装

    4) java对象的调用

    5)枚举的实现

    6)多态和重组

    7)工具类的构造

      8)文件的读写


逻辑层:business

              ebi包中  UserEbi

       

package cn.hncu.bookStore.user.business.ebi;import java.util.List;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.user.vo.UserQueryModel;public interface UserEbi {    public boolean create(UserModel user);    public boolean delete(String uuid);    public boolean update(UserModel user);    public List<UserModel> getAll();    public UserModel getSingle(String uuid);    public List<UserModel> getBycondition(UserQueryModel upm);    }

           ebo包中的 UserEbo

package cn.hncu.bookStore.user.business.ebo;import java.util.List;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.dao.dao.UserDao;import cn.hncu.bookStore.user.dao.factory.UserDaoFactory;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.user.vo.UserQueryModel;public class UserEbo implements UserEbi{public boolean create(UserModel user) {if(user.getName()!=null && user.getName().trim().length()<=0){return false;}          UserDao dao =UserDaoFactory.getUserDao();           return dao.create(user);}public boolean delete(String uuid) {UserDao dao=UserDaoFactory.getUserDao();return dao.delete(uuid);}public List<UserModel> getAll() {UserDao dao=UserDaoFactory.getUserDao();return dao.getAll();}public List<UserModel> getBycondition(UserQueryModel uqm) {       UserDao dao=UserDaoFactory.getUserDao();       return dao.getBycondition(uqm);}public UserModel getSingle(String uuid) {         UserDao dao=UserDaoFactory.getUserDao();         return dao.getSingle(uuid);}public boolean update(UserModel user) {    UserDao dao=UserDaoFactory.getUserDao();    return dao.update(user);}}

               factory工厂包的UserEbiFactory

package cn.hncu.bookStore.user.business.factory;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.ebo.UserEbo;public class UserEbiFactory {       public static UserEbi getUserEbi(){       return new UserEbo();       }}


数据层:dao

          dao包中的UserDao

/** *  */package cn.hncu.bookStore.user.dao.dao;import java.util.List;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.user.vo.UserQueryModel;/** * @author <a href="mailto:729627398@qq.com">LZP</a> * Aug 21, 2015 */public interface UserDao {/** * 如果数据库中不存在该user对象,则创建一个新的。如果存在,则直接返回false * @param user 将要被创建的用户对象 * @return 如果创建成功则返回true,否则返回false */public boolean create(UserModel user);public boolean delete(String uuid);public boolean update(UserModel user);public List<UserModel> getAll();public UserModel getSingle(String uuid);public List<UserModel> getBycondition(UserQueryModel uqm);}


        factory中的UserDaoFactory

package cn.hncu.bookStore.user.dao.factory;import cn.hncu.bookStore.user.dao.dao.UserDao;import cn.hncu.bookStore.user.dao.impl.UserDaoImpl;public class UserDaoFactory {   public static UserDao  getUserDao(){   return new UserDaoImpl();   }}


     实现类impl中UserDaoFactory


/** *  */package cn.hncu.bookStore.user.dao.impl;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;import cn.hncu.bookStore.user.dao.dao.UserDao;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.user.vo.UserQueryModel;import cn.hncu.bookStore.util.FileIOUtil;/** * @author <a href="mailto:729627398@qq.com">廖ZP</a> * <br>Aug 21, 2015 */public class UserDaoImpl implements UserDao {private final String FILE_NAME="User.txt";@SuppressWarnings("unchecked")public boolean create(UserModel user) {List<UserModel> list = getAll();if(list!=null){//遍历list,如果其中存在user则返回false,否则把user存入数据库for(UserModel u:list){if(u.getUuid().equals(user.getUuid())){return false;}}}list.add(user);//把更新后的list存入数据库FileIOUtil.write2File(FILE_NAME, list);return false;}public boolean delete(String uuid) {    List<UserModel> list =getAll();    for(int i=0;i<list.size();i++){         final UserModel user=list.get(i);             if(user.getUuid().equals(uuid)){             list.remove(i);             FileIOUtil.write2File(FILE_NAME, list);                  return true;             }            }return false;}@SuppressWarnings("unchecked")public List<UserModel> getAll() {List<?> list = FileIOUtil.readFromFile(FILE_NAME);return (List<UserModel>)list;}public List<UserModel> getBycondition(UserQueryModel uqm) {//1从后台把所有的数据集读取出来List<UserModel> list = getAll();List<UserModel> ret = new ArrayList<UserModel>();//存放结果集if(uqm==null){return list;}//2利用卫条件来进行筛选//3筛选剩下的就是查询结果集for(UserModel user:list){//卫条件,判断uuidif( uqm.getUuid()!=null && uqm.getUuid().trim().length()>0){//先验证查询条件有效if(!uqm.getUuid().equals(user.getUuid()) ){ //再进行精确查询continue;}}//卫条件,判断用户名if( uqm.getName()!=null && uqm.getName().trim().length()>0){//先验证查询条件有效if(!user.getName().contains(uqm.getName().trim()) ){ //再进行模糊查询continue;}}//卫条件,判断用户类型,int型if(uqm.getType()>0){ //先验证查询条件有效,大于0才代表有输入if( uqm.getType()!=user.getType() ){continue;}}ret.add(user);}return ret;}public UserModel getSingle(String uuid) {List<UserModel> list=getAll();for(int i=0;i<list.size();i++){final UserModel user = list.get(i);if(user.getUuid().equals(uuid)){return user;}}return null;}public boolean update(UserModel user) {List<UserModel> list=getAll();for(int i=0;i<list.size();i++){final UserModel user0=list.get(i);if(user0.getUuid().equals(user.getUuid())){list.set(i,user);FileIOUtil.write2File(FILE_NAME, list);return true;}}return false;}public static void main(String[] args) {UserDaoImpl dao = new UserDaoImpl();dao.create(new UserModel("001","Jack",1,"1234"));dao.create(new UserModel("002","汉字",2,"1234"));List<UserModel> list = dao.getAll();System.out.println(list);}}

 

用户层:ui
          增加面板 AddPanel

package cn.hncu.bookStore.user.ui;import java.awt.GridBagLayout;import javax.swing.JPanel;import javax.swing.JLabel;import java.awt.Rectangle;import java.awt.Font;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JComboBox;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.constance.UserTypeEnum;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.util.PanelUtil;public class AddPanel extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JLabel jLabel1 = null;private JLabel jLabel2 = null;private JLabel jLabel3 = null;private JLabel jLabel4 = null;private JLabel jLabel5 = null;private JButton btnadd = null;private JButton btnback = null;private JTextField textUuid = null;private JTextField textName = null;private JTextField textPwd = null;private JTextField textPwd2 = null;private JComboBox combType = null;/** * This is the default constructor */private JFrame jFrame=null;public AddPanel(JFrame jFrame) {this.jFrame=jFrame;initialize();}public AddPanel() {super();initialize();}/** * This method initializes this *  * @return void */private void initialize() {jLabel5 = new JLabel();jLabel5.setBounds(new Rectangle(77, 204, 83, 33));jLabel5.setText("用户类型:");jLabel4 = new JLabel();jLabel4.setBounds(new Rectangle(431, 146, 76, 36));jLabel4.setText("确认密码:");jLabel3 = new JLabel();jLabel3.setBounds(new Rectangle(79, 146, 80, 31));jLabel3.setText("密码:");jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(430, 80, 76, 41));jLabel2.setText("姓名:");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(81, 87, 74, 33));jLabel1.setText("uuid:");jLabel = new JLabel();jLabel.setBounds(new Rectangle(268, 19, 146, 46));jLabel.setFont(new Font("Dialog", Font.BOLD, 24));jLabel.setText("增加列表");this.setSize(800, 600);this.setLayout(null);this.setFont(new Font("Dialog", Font.PLAIN, 24));this.add(jLabel, null);this.add(jLabel1, null);this.add(jLabel2, null);this.add(jLabel3, null);this.add(jLabel4, null);this.add(jLabel5, null);this.add(getBtnadd(), null);this.add(getBtnback(), null);this.add(getTextUuid(), null);this.add(getTextName(), null);this.add(getTextPwd(), null);this.add(getTextPwd2(), null);this.add(getCombType(), null);}/** * This method initializes btnadd *  * @return javax.swing.JButton */private JButton getBtnadd() {if (btnadd == null) {btnadd = new JButton();btnadd.setBounds(new Rectangle(61, 274, 150, 65));btnadd.setText("增加");btnadd.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {//1 收集数据String uuid = textUuid.getText();String name = textName.getText();if(name.trim().length()<=0){JOptionPane.showMessageDialog(null, "用户名不能为空!");return;}String pwd = textPwd.getText();String pwd2 = textPwd2.getText();  //要判断两次密码是否一致if(!pwd.equals(pwd2)){JOptionPane.showMessageDialog(null, "您输入的两次密码不一致,请重新输入...");return;}  //用户类型String selStr = combType.getSelectedItem().toString();int type = UserTypeEnum.getTypeByName(selStr);//2 组织数据UserModel user = new UserModel();user.setUuid(uuid);user.setName(name);user.setPwd(pwd);user.setType(type);//3 调用逻辑层ebiUserEbi ebi = UserEbiFactory.getUserEbi();boolean success = ebi.create(user);//4 根据逻辑层的返回结果,选择转到不同的结果页面if(success){PanelUtil.changePanel(jFrame, new ListPanel(jFrame));}else{JOptionPane.showMessageDialog(null, "该用户已经存在");}}});}return btnadd;}/** * This method initializes btnback *  * @return javax.swing.JButton */private JButton getBtnback() {if (btnback == null) {btnback = new JButton();btnback.setBounds(new Rectangle(406, 274, 137, 63));btnback.setText("返回");btnback.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {jFrame.getContentPane().removeAll();jFrame.getContentPane().add(new ListPanel(jFrame));jFrame.getContentPane().validate();jFrame.getContentPane().repaint();}});}return btnback;}/** * This method initializes textUuid *  * @return javax.swing.JTextField */private JTextField getTextUuid() {if (textUuid == null) {textUuid = new JTextField();textUuid.setBounds(new Rectangle(180, 90, 127, 34));}return textUuid;}/** * This method initializes textName *  * @return javax.swing.JTextField */private JTextField getTextName() {if (textName == null) {textName = new JTextField();textName.setBounds(new Rectangle(530, 82, 122, 38));}return textName;}/** * This method initializes textPwd *  * @return javax.swing.JTextField */private JTextField getTextPwd() {if (textPwd == null) {textPwd = new JTextField();textPwd.setBounds(new Rectangle(180, 148, 135, 32));}return textPwd;}/** * This method initializes textPwd2 *  * @return javax.swing.JTextField */private JTextField getTextPwd2() {if (textPwd2 == null) {textPwd2 = new JTextField();textPwd2.setBounds(new Rectangle(531, 148, 123, 32));}return textPwd2;}/** * This method initializes combType *  * @return javax.swing.JComboBox */private JComboBox getCombType() {if (combType == null) {combType = new JComboBox();combType.setBounds(new Rectangle(183, 210, 137, 40));//从枚举对象中把各种用户类型添加到该组合框控件for(UserTypeEnum type: UserTypeEnum.values()){combType.addItem( type.getName());}}return combType;}}  //  @jve:decl-index=0:visual-constraint="43,9"


                删除类 DeletePanel

package cn.hncu.bookStore.user.ui;import java.awt.GridBagLayout;import javax.swing.JPanel;import javax.swing.JLabel;import java.awt.Rectangle;import java.awt.Font;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JComboBox;import javax.swing.JButton;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.constance.UserTypeEnum;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.util.PanelUtil;public class DeletePanel extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JLabel jLabel1 = null;private JTextField textUuid = null;private JLabel jLabel2 = null;private JTextField textName = null;private JComboBox ComeUser = null;private JLabel jLabel3 = null;private JButton btnUser = null;private JButton btnBack = null;    private JFrame jFrame=null;    private UserModel initUser=null;/** * This is the default constructor */    public DeletePanel(JFrame jFrame,String uuid) {    this.jFrame=jFrame;    initUser=UserEbiFactory.getUserEbi().getSingle(uuid);initialize();}public DeletePanel() {super();initialize();}/** * This method initializes this *  * @return void */private void initialize() {jLabel3 = new JLabel();jLabel3.setBounds(new Rectangle(93, 196, 67, 40));jLabel3.setText("用户类型:");jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(399, 102, 72, 48));jLabel2.setText("姓名:");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(95, 112, 50, 30));jLabel1.setText("uuid:");jLabel = new JLabel();jLabel.setBounds(new Rectangle(248, 19, 160, 53));jLabel.setFont(new Font("Dialog", Font.BOLD, 24));jLabel.setText("删除用户");this.setSize(800, 600);this.setLayout(null);this.add(jLabel, null);this.add(jLabel1, null);this.add(getTextUuid(), null);this.add(jLabel2, null);this.add(getTextName(), null);this.add(getComeUser(), null);this.add(jLabel3, null);this.add(getBtnUser(), null);this.add(getBtnBack(), null);}/** * This method initializes textUuid *  * @return javax.swing.JTextField */private JTextField getTextUuid() {if (textUuid == null) {textUuid = new JTextField();textUuid.setBounds(new Rectangle(165, 109, 130, 42));//初始化数据String uuid=initUser.getUuid();textUuid.setText(uuid);textUuid.setEditable(false);}return textUuid;}/** * This method initializes textName *  * @return javax.swing.JTextField */private JTextField getTextName() {if (textName == null) {textName = new JTextField();textName.setBounds(new Rectangle(489, 106, 133, 44));  // 数据初始化String name=initUser.getName();textName.setText(name);}return textName;}/** * This method initializes ComeUser *  * @return javax.swing.JComboBox */private JComboBox getComeUser() {if (ComeUser == null) {ComeUser = new JComboBox();ComeUser.setBounds(new Rectangle(172, 194, 128, 45));    //初始化数据for(UserTypeEnum type : UserTypeEnum.values()){ComeUser.addItem(type.getName());if(type.getType()==initUser.getType()){ComeUser.setSelectedItem(type.getName());}}}return ComeUser;}/** * This method initializes btnUser *  * @return javax.swing.JButton */private JButton getBtnUser() {if (btnUser == null) {btnUser = new JButton();btnUser.setBounds(new Rectangle(92, 275, 148, 64));btnUser.setText("删除");btnUser.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {                 //1.手机参数     //2.组织参数// 3.调用逻辑层ebiUserEbi ebi=UserEbiFactory.getUserEbi();boolean success=ebi.delete(textUuid.getText());//4.根据逻辑层的返回结果,选择转到不用的结果页面if(success){PanelUtil.changePanel(jFrame, new ListPanel(jFrame));}else{JOptionPane.showMessageDialog(null,"该用户已经不存在。。");}}});}return btnUser;}/** * This method initializes btnBack *  * @return javax.swing.JButton */private JButton getBtnBack() {if (btnBack == null) {btnBack = new JButton();btnBack.setBounds(new Rectangle(381, 276, 158, 66));btnBack.setText("返回");btnBack.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {PanelUtil.changePanel(jFrame, new ListPanel(jFrame));}});}return btnBack;}}


 

用户列表 listPanel

package cn.hncu.bookStore.user.ui;import java.awt.GridBagLayout;import javax.swing.JPanel;import javax.swing.JLabel;import java.awt.Rectangle;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JList;import javax.swing.JButton;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.util.PanelUtil;import java.awt.Font;import java.util.List;public class ListPanel extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JScrollPane jScrollPane = null;private JList jList = null;private JButton btnToAdd = null;    private List<UserModel> list=null;    private JFrame jFrame=null;private JButton btnToUpdate = null;private JButton btnToDelete = null;private JButton btnQuery = null;    public ListPanel(JFrame jFrame) {this.jFrame=jFrame;initialize();//调用逻辑层,把原有的用户载到list当中list = UserEbiFactory.getUserEbi().getAll();initialize();}public ListPanel() {super();initialize();}public ListPanel(JFrame jFrame, List<UserModel> ret) {//专用于显示查询结果的ListPanelthis.jFrame = jFrame;list = ret;initialize();}/** * This method initializes this *  * @return void */private void initialize() {jLabel = new JLabel();jLabel.setBounds(new Rectangle(270, 12, 163, 44));jLabel.setFont(new Font("Dialog", Font.BOLD, 24));jLabel.setText("用户列表");this.setSize(800, 600);this.setLayout(null);this.add(jLabel, null);this.add(getJScrollPane(), null);this.add(getBtnToAdd(), null);this.add(getBtnToUpdate(), null);this.add(getBtnToDelete(), null);this.add(getBtnQuery(), null);}/** * This method initializes jScrollPane *  * @return javax.swing.JScrollPane */private JScrollPane getJScrollPane() {if (jScrollPane == null) {jScrollPane = new JScrollPane();jScrollPane.setBounds(new Rectangle(205, 75, 416, 316));jScrollPane.setViewportView(getJList());}return jScrollPane;}/** * This method initializes jList *  * @return javax.swing.JList */private JList getJList() {if (jList == null) {jList = new JList();//把从逻辑层载入的数据list放到控件中显示if(list!=null){   jList.setListData(list.toArray());}}return jList;}/** * This method initializes btnToAdd *  * @return javax.swing.JButton */private JButton getBtnToAdd() {if (btnToAdd == null) {btnToAdd = new JButton();btnToAdd.setBounds(new Rectangle(95, 428, 129, 65));btnToAdd.setText("转到增加");btnToAdd.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {jFrame.getContentPane().removeAll();jFrame.getContentPane().add(new AddPanel(jFrame));jFrame.getContentPane().validate();jFrame.getContentPane().repaint();}});}return btnToAdd;}/** * This method initializes btnToUpdate *  * @return javax.swing.JButton */private JButton getBtnToUpdate() {if (btnToUpdate == null) {btnToUpdate = new JButton();btnToUpdate.setBounds(new Rectangle(288, 431, 124, 68));btnToUpdate.setText("转到修改");btnToUpdate.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {UserModel user = (UserModel) jList.getSelectedValue();if(user==null){JOptionPane.showMessageDialog(null,"请选择要修改的用户。。");return;}PanelUtil.changePanel(jFrame, new UpDatePanel(jFrame,user.getUuid()));}});}return btnToUpdate;}/** * This method initializes btnToDelete *  * @return javax.swing.JButton */private JButton getBtnToDelete() {if (btnToDelete == null) {btnToDelete = new JButton();btnToDelete.setBounds(new Rectangle(455, 433, 132, 68));btnToDelete.setText("转到删除");btnToDelete.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {                 UserModel user= (UserModel) jList.getSelectedValue();                 if(user==null){                 JOptionPane.showMessageDialog(null,"请选择要删除的用户。。");                 return;                 }                 PanelUtil.changePanel(jFrame, new DeletePanel(jFrame,user.getUuid()));}});}return btnToDelete;}/** * This method initializes btnQuery *  * @return javax.swing.JButton */private JButton getBtnQuery() {if (btnQuery == null) {btnQuery = new JButton();btnQuery.setBounds(new Rectangle(620, 438, 123, 67));btnQuery.setText("转到查询");btnQuery.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {PanelUtil.changePanel(jFrame, new QueryPanel(jFrame));}});}return btnQuery;}}


查询列表  QueryPanel

package cn.hncu.bookStore.user.ui;import java.awt.GridBagLayout;import javax.swing.JPanel;import javax.swing.JLabel;import java.awt.Rectangle;import java.util.List;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.JComboBox;import javax.swing.JButton;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.constance.UserTypeEnum;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.user.vo.UserQueryModel;import cn.hncu.bookStore.util.PanelUtil;public class QueryPanel extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JLabel jLabel1 = null;private JLabel jLabel2 = null;private JLabel jLabel3 = null;private JTextField textUuid = null;private JTextField textName = null;private JComboBox ComUser = null;private JButton btnQuery = null;private JButton btnBack = null;    private JFrame jFrame=null;    /** * This is the default constructor */public QueryPanel(JFrame jFrame) {this.jFrame=jFrame;initialize();}public QueryPanel() {super();initialize();}/** * This method initializes this *  * @return void */private void initialize() {jLabel3 = new JLabel();jLabel3.setBounds(new Rectangle(178, 133, 77, 30));jLabel3.setText("用户列表:");jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(450, 70, 67, 33));jLabel2.setText("姓名:");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(178, 70, 72, 30));jLabel1.setText("uuid:");jLabel = new JLabel();jLabel.setBounds(new Rectangle(328, 14, 177, 40));jLabel.setText("查询列表");this.setSize(800, 600);this.setLayout(null);this.add(jLabel, null);this.add(jLabel1, null);this.add(jLabel2, null);this.add(jLabel3, null);this.add(getTextUuid(), null);this.add(getTextName(), null);this.add(getComUser(), null);this.add(getBtnQuery(), null);this.add(getBtnBack(), null);}/** * This method initializes textUuid *  * @return javax.swing.JTextField */private JTextField getTextUuid() {if (textUuid == null) {textUuid = new JTextField();textUuid.setBounds(new Rectangle(274, 69, 83, 35));}return textUuid;}/** * This method initializes textName *  * @return javax.swing.JTextField */private JTextField getTextName() {if (textName == null) {textName = new JTextField();textName.setBounds(new Rectangle(529, 71, 122, 32));}return textName;}/** * This method initializes ComUser *  * @return javax.swing.JComboBox */private JComboBox getComUser() {if (ComUser == null) {ComUser = new JComboBox();ComUser.setBounds(new Rectangle(274, 133, 97, 31));     ComUser.addItem("请选择。。");    for(UserTypeEnum type:UserTypeEnum.values()){    ComUser.addItem(type.getName());    }    return ComUser;}return ComUser;}/** * This method initializes btnQuery *  * @return javax.swing.JButton */private JButton getBtnQuery() {if (btnQuery == null) {btnQuery = new JButton();btnQuery.setBounds(new Rectangle(186, 220, 157, 62));btnQuery.setText("查询");btnQuery.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {//收集数据String uuid=textUuid.getText();String name=textName.getText();   // 用户类型 int type=0; if(ComUser.getSelectedIndex()>0){ String selStr=ComUser.getSelectedItem().toString(); type=UserTypeEnum.getTypeByName(selStr); }    //组织数据(封装的查询条件,值对象) UserQueryModel uqm=new UserQueryModel(); uqm.setUuid(uuid); uqm.setName(name); uqm.setType(type); //调用逻辑层UserEbi ebi=UserEbiFactory.getUserEbi();List<UserModel> ret=ebi.getBycondition(uqm);//根据逻辑层的返回结果,选择转到不同的结果页面PanelUtil.changePanel(jFrame,new ListPanel(jFrame,ret));}});}return btnQuery;}/** * This method initializes btnBack *  * @return javax.swing.JButton */private JButton getBtnBack() {if (btnBack == null) {btnBack = new JButton();btnBack.setBounds(new Rectangle(436, 217, 155, 66));btnBack.setText("返回");btnBack.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {PanelUtil.changePanel(jFrame,new ListPanel(jFrame));}});}return btnBack;}}


更新列表  UpDatePanel

package cn.hncu.bookStore.user.ui;import java.awt.GridBagLayout;import javax.swing.JPanel;import javax.swing.JLabel;import java.awt.Rectangle;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.JComboBox;import cn.hncu.bookStore.user.business.ebi.UserEbi;import cn.hncu.bookStore.user.business.factory.UserEbiFactory;import cn.hncu.bookStore.user.constance.UserTypeEnum;import cn.hncu.bookStore.user.vo.UserModel;import cn.hncu.bookStore.util.PanelUtil;public class UpDatePanel extends JPanel {private static final long serialVersionUID = 1L;private JLabel jLabel = null;private JLabel jLabel1 = null;private JLabel jLabel2 = null;private JLabel jLabel3 = null;private JLabel jLabel4 = null;private JLabel jLabel5 = null;private JButton btnUpdate = null;private JButton btnBack = null;private JTextField txtUuid = null;private JTextField txtName = null;private JTextField txtPwd = null;private JTextField txtPwd2 = null;private JComboBox comUser = null;    private JFrame jFrame=null;    private UserModel initUser=null;    /** * This is the default constructor */public UpDatePanel() {super();initialize();}public UpDatePanel(JFrame jFrame,String uuid) {this.jFrame=jFrame;initUser = UserEbiFactory.getUserEbi().getSingle(uuid);initialize();}   /** * This method initializes this *  * @return void */private void initialize() {jLabel5 = new JLabel();jLabel5.setBounds(new Rectangle(82, 205, 107, 48));jLabel5.setText("用户类型:");jLabel4 = new JLabel();jLabel4.setBounds(new Rectangle(432, 144, 93, 34));jLabel4.setText("确认密码:");jLabel3 = new JLabel();jLabel3.setBounds(new Rectangle(84, 150, 103, 31));jLabel3.setText("密码:");jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(438, 87, 86, 34));jLabel2.setText("姓名:");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(84, 93, 99, 29));jLabel1.setText("UUid");jLabel = new JLabel();jLabel.setBounds(new Rectangle(278, 17, 168, 52));jLabel.setText("修改列表");this.setSize(800, 600);this.setLayout(null);this.add(jLabel, null);this.add(jLabel1, null);this.add(jLabel2, null);this.add(jLabel3, null);this.add(jLabel4, null);this.add(jLabel5, null);this.add(getBtnUpdate(), null);this.add(getBtnBack(), null);this.add(getTxtUuid(), null);this.add(getTxtName(), null);this.add(getTxtPwd(), null);this.add(getTxtPwd2(), null);this.add(getComUser(), null);}/** * This method initializes btnUpdate *  * @return javax.swing.JButton */private JButton getBtnUpdate() {if (btnUpdate == null) {btnUpdate = new JButton();btnUpdate.setBounds(new Rectangle(114, 285, 136, 66));btnUpdate.setText("修改");btnUpdate.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {//1 收集数据String uuid = txtUuid.getText();String name = txtName.getText();if(name.trim().length()<=0){JOptionPane.showMessageDialog(null, "用户名不能为空!");return;}String pwd = new String(txtPwd.getText());String pwd2 = new String(txtPwd2.getText());  //要判断两次密码是否一致if(!pwd.equals(pwd2)){JOptionPane.showMessageDialog(null, "您输入的两次密码不一致,请重新输入...");return;}  //用户类型String selStr = comUser.getSelectedItem().toString();int type = UserTypeEnum.getTypeByName(selStr);//2 组织数据UserModel user = new UserModel();user.setUuid(uuid);user.setName(name);user.setPwd(pwd);user.setType(type);//3 调用逻辑层ebiUserEbi ebi = UserEbiFactory.getUserEbi();boolean success = ebi.update(user);//4 根据逻辑层的返回结果,选择转到不同的结果页面if(success){PanelUtil.changePanel(jFrame, new ListPanel(jFrame));}else{JOptionPane.showMessageDialog(null, "该用户已经不存在");}}});}return btnUpdate;}/** * This method initializes btnBack *  * @return javax.swing.JButton */private JButton getBtnBack() {if (btnBack == null) {btnBack = new JButton();btnBack.setBounds(new Rectangle(408, 283, 156, 67));btnBack.setText("返回");btnBack.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {PanelUtil.changePanel(jFrame, new ListPanel(jFrame));}});}return btnBack;}/** * This method initializes txtUuid *  * @return javax.swing.JTextField */private JTextField getTxtUuid() {if (txtUuid == null) {txtUuid = new JTextField();txtUuid.setBounds(new Rectangle(210, 94, 110, 30));        //初始化数据   String uuid=initUser.getUuid();   txtUuid.setText(uuid);   txtUuid.setEditable(false);   }return txtUuid;}/** * This method initializes txtName *  * @return javax.swing.JTextField */private JTextField getTxtName() {if (txtName == null) {txtName = new JTextField();txtName.setBounds(new Rectangle(548, 88, 113, 28));    String name=initUser.getName();    txtName.setText(name);}return txtName;}/** * This method initializes txtPwd *  * @return javax.swing.JTextField */private JTextField getTxtPwd() {if (txtPwd == null) {txtPwd = new JTextField();txtPwd.setBounds(new Rectangle(208, 150, 118, 31));    String pwd=initUser.getPwd();    txtPwd.setText(pwd);}return txtPwd;}/** * This method initializes txtPwd2 *  * @return javax.swing.JTextField */private JTextField getTxtPwd2() {if (txtPwd2 == null) {txtPwd2 = new JTextField();txtPwd2.setBounds(new Rectangle(553, 143, 112, 29));String pwd2=initUser.getPwd();    txtPwd2.setText(pwd2);}return txtPwd2;}/** * This method initializes comUser *  * @return javax.swing.JComboBox */private JComboBox getComUser() {if (comUser == null) {comUser = new JComboBox();comUser.setBounds(new Rectangle(212, 209, 121, 48));           for(UserTypeEnum type : UserTypeEnum.values()){    comUser.addItem(type.getName());    if(type.getType()==initUser.getType()){    comUser.setSelectedItem(type.getName());        }     }}return comUser;}}


用户模板  UserModel

/** *  */package cn.hncu.bookStore.user.vo;import java.io.Serializable;import cn.hncu.bookStore.user.constance.UserTypeEnum;/** * @author <a href="mailto:729627398@qq.com">廖ZP</a> * <br>Aug 21, 2015 */public class UserModel implements Serializable{private static final long serialVersionUID = 1L;private String uuid;private String name;private int type;private String pwd;public UserModel(String uuid, String name, int type, String pwd) {super();this.uuid = uuid;this.name = name;this.type = type;this.pwd = pwd;}public UserModel(){}public String getUuid() {return uuid;}public void setUuid(String uuid) {this.uuid = uuid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;final UserModel other = (UserModel) obj;if (uuid == null) {if (other.uuid != null)return false;} else if (!uuid.equals(other.uuid))return false;return true;}@Overridepublic String toString() {String strType = UserTypeEnum.getNameByType(type);return "{"+uuid+","+name+","+strType+"}";}}


用户查询模板 UserQueryModel

/** *  */package cn.hncu.bookStore.user.vo;/** * @author <a href="mailto:729627398@qq.com">廖ZP</a> * <br>Aug 21, 2015 */public class UserQueryModel extends UserModel {private static final long serialVersionUID = 1L;}

工具类 util

   工具类 FileIOUtil

</pre><pre class="java" name="code">package cn.hncu.bookStore.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;/* 代码抽取步骤: 1)先不考虑怎么写,把类似的代码拷到一起分析 2)观察其中的变化部分和不变化的部分 3)把这段代码中 用到的 前面定义的变量 抽取成方法的参数 4)把 留给后面使用的 将在这段代码中新建的变量 定义成方法的返回值 */public class FileIOUtil {private FileIOUtil(){//工具类,把默认构造方法关闭(私有)}public static List<?> readFromFile(String fileName){File file = new File(fileName);if(!file.exists()){try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}ObjectInputStream input = null;try {FileInputStream fin = new FileInputStream(file);input = new ObjectInputStream(fin);List<?> list =(List<?>)input.readObject();if(list==null){list = new ArrayList<Object>();}return list;}catch (Exception e) {System.out.println("文件读取结束...");}finally{if(input!=null){try {input.close();} catch (IOException e) {throw new RuntimeException("文件关闭失败");}}}return new ArrayList<Object>();}public static boolean write2File(String fileName, List<?> list){File file = new File(fileName);ObjectOutputStream output = null;try {output = new ObjectOutputStream(new FileOutputStream(file));output.writeObject(list);}catch (Exception e) {return false;}finally{if(output!=null){try {output.close();} catch (IOException e) {throw new RuntimeException("文件关闭失败");}}}return true;}}


工具类 PanelUtil

</pre><pre class="java" name="code">package cn.hncu.bookStore.util;import javax.swing.JFrame;import javax.swing.JPanel;public class PanelUtil {private PanelUtil(){}public static void changePanel(JFrame jFrame, JPanel jPanel){jFrame.getContentPane().removeAll();jFrame.getContentPane().add(jPanel);jFrame.getContentPane().validate();jFrame.getContentPane().repaint();}}


枚举类 UserTypeEnum

package cn.hncu.bookStore.user.constance;public enum UserTypeEnum {ADMIN(1,"超级管理员"),BOOK(2,"图书管理员"),IN(3,"进货管理员"),OUT(4,"销售管理员"),STOCK(5,"库存管理员");private final int type;private final String name;private UserTypeEnum(int type, String name){this.type = type;this.name = name;}public int getType(){return type;}public String getName() {return name;}//查询public static String getNameByType(int type){for(UserTypeEnum userType:UserTypeEnum.values()){if(userType.getType()==type){return userType.getName();}}throw new IllegalArgumentException("No such type:"+type+" in UserTypeEnum");}public static int getTypeByName(String name){for(UserTypeEnum userType: UserTypeEnum.values()){if(userType.getName().equalsIgnoreCase(name)){return userType.getType();}}throw new IllegalArgumentException("No such name:"+name+" in UserTypeEnum");}public static void main(String[] args) {//System.out.println(UserTypeEnum.OUT.getType());String name = UserTypeEnum.getNameByType(3);System.out.println(name);int type = UserTypeEnum.getTypeByName("图书管理员");System.out.println(type);}}


图书管理  bookStore

package cn.hncu.bookStore;import java.awt.event.KeyEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.Event;import java.awt.BorderLayout;import javax.swing.SwingConstants;import javax.swing.SwingUtilities;import javax.swing.KeyStroke;import java.awt.Point;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JMenuItem;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JFrame;import javax.swing.JDialog;import cn.hncu.bookStore.user.ui.ListPanel;import cn.hncu.bookStore.user.ui.UpDatePanel;import cn.hncu.bookStore.util.PanelUtil;import java.awt.Dimension;import javax.swing.JButton;import java.awt.Rectangle;public class bookStore {private JFrame jFrame = null;private JPanel jContentPane = null;private JMenuBar jJMenuBar = null;private JMenu fileMenu = null;private JMenu editMenu = null;private JMenu helpMenu = null;private JMenuItem exitMenuItem = null;private JMenuItem aboutMenuItem = null;private JMenuItem cutMenuItem = null;private JMenuItem copyMenuItem = null;private JMenuItem pasteMenuItem = null;private JMenuItem saveMenuItem = null;private JDialog aboutDialog = null;private JPanel aboutContentPane = null;private JLabel aboutVersionLabel = null;private ListPanel listPanel = null;private JButton jButton = null;/** * This method initializes listPanel *  * @return cn.hncu.bookStore.user.ui.ListPanel */private ListPanel getListPanel() {if (listPanel == null) {listPanel = new ListPanel(getJFrame());}return listPanel;}/** * This method initializes jButton *  * @return javax.swing.JButton *//** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSwingUtilities.invokeLater(new Runnable() {public void run() {bookStore application = new bookStore();application.getJFrame().setVisible(true);}});}/** * This method initializes jFrame *  * @return javax.swing.JFrame */private JFrame getJFrame() {if (jFrame == null) {jFrame = new JFrame();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setJMenuBar(getJJMenuBar());jFrame.setSize(800, 600);jFrame.setContentPane(getJContentPane());jFrame.setTitle("Application");}return jFrame;}/** * This method initializes jContentPane *  * @return javax.swing.JPanel */private JPanel getJContentPane() {if (jContentPane == null) {jContentPane = new JPanel();jContentPane.setLayout(null);//※把ListPanel加入到内容空格当中jContentPane.add(new ListPanel(jFrame));}return jContentPane;}/** * This method initializes jJMenuBar *  * @return javax.swing.JMenuBar */private JMenuBar getJJMenuBar() {if (jJMenuBar == null) {jJMenuBar = new JMenuBar();jJMenuBar.add(getFileMenu());jJMenuBar.add(getEditMenu());jJMenuBar.add(getHelpMenu());}return jJMenuBar;}/** * This method initializes jMenu *  * @return javax.swing.JMenu */private JMenu getFileMenu() {if (fileMenu == null) {fileMenu = new JMenu();fileMenu.setText("File");fileMenu.add(getSaveMenuItem());fileMenu.add(getExitMenuItem());}return fileMenu;}/** * This method initializes jMenu *  * @return javax.swing.JMenu */private JMenu getEditMenu() {if (editMenu == null) {editMenu = new JMenu();editMenu.setText("Edit");editMenu.add(getCutMenuItem());editMenu.add(getCopyMenuItem());editMenu.add(getPasteMenuItem());}return editMenu;}/** * This method initializes jMenu *  * @return javax.swing.JMenu */private JMenu getHelpMenu() {if (helpMenu == null) {helpMenu = new JMenu();helpMenu.setText("Help");helpMenu.add(getAboutMenuItem());}return helpMenu;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getExitMenuItem() {if (exitMenuItem == null) {exitMenuItem = new JMenuItem();exitMenuItem.setText("Exit");exitMenuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});}return exitMenuItem;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getAboutMenuItem() {if (aboutMenuItem == null) {aboutMenuItem = new JMenuItem();aboutMenuItem.setText("About");aboutMenuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JDialog aboutDialog = getAboutDialog();aboutDialog.pack();Point loc = getJFrame().getLocation();loc.translate(20, 20);aboutDialog.setLocation(loc);aboutDialog.setVisible(true);}});}return aboutMenuItem;}/** * This method initializes aboutDialog *  * @return javax.swing.JDialog */private JDialog getAboutDialog() {if (aboutDialog == null) {aboutDialog = new JDialog(getJFrame(), true);aboutDialog.setTitle("About");aboutDialog.setContentPane(getAboutContentPane());}return aboutDialog;}/** * This method initializes aboutContentPane *  * @return javax.swing.JPanel */private JPanel getAboutContentPane() {if (aboutContentPane == null) {aboutContentPane = new JPanel();aboutContentPane.setLayout(new BorderLayout());aboutContentPane.add(getAboutVersionLabel(), BorderLayout.CENTER);}return aboutContentPane;}/** * This method initializes aboutVersionLabel *  * @return javax.swing.JLabel */private JLabel getAboutVersionLabel() {if (aboutVersionLabel == null) {aboutVersionLabel = new JLabel();aboutVersionLabel.setText("Version 1.0");aboutVersionLabel.setHorizontalAlignment(SwingConstants.CENTER);}return aboutVersionLabel;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getCutMenuItem() {if (cutMenuItem == null) {cutMenuItem = new JMenuItem();cutMenuItem.setText("Cut");cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK, true));}return cutMenuItem;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getCopyMenuItem() {if (copyMenuItem == null) {copyMenuItem = new JMenuItem();copyMenuItem.setText("Copy");copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK, true));}return copyMenuItem;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getPasteMenuItem() {if (pasteMenuItem == null) {pasteMenuItem = new JMenuItem();pasteMenuItem.setText("Paste");pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK, true));}return pasteMenuItem;}/** * This method initializes jMenuItem *  * @return javax.swing.JMenuItem */private JMenuItem getSaveMenuItem() {if (saveMenuItem == null) {saveMenuItem = new JMenuItem();saveMenuItem.setText("Save");saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK, true));}return saveMenuItem;}}


  


0 0
原创粉丝点击