图书管理项目 第一天 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
- 图书管理项目 第一天 user用户模块
- ASP.Net 实战项目 之 《图书商城》 第一天
- 图书商城:用户模块
- web day24 小项目练习图书商城, 用户,模块(注册,激活,登陆,退出),分类/图书模块
- web day26 小项目练习图书商城 后台分类管理模块,图书管理模块,前台登陆过滤
- 第1周-项目4-图书管理系统
- yii2项目实战-用户管理之user组件的配置
- oracle笔记——第一天:用户管理
- 用户研究员第一天
- 图书管理系统项目源代码
- 今天开始第一天项目管理师的学习
- 上海-项目-第一天
- ps项目第一天
- 项目第一天
- C# 项目第一天
- 项目第一天
- 项目第一天
- 项目助理第一天
- cocos2dx 设置资源寻找路径
- JNI学习方法
- const 指针与指向const的指针
- 正则表达式
- JS判断移动设备函数(几乎涵盖所有的移动终端)
- 图书管理项目 第一天 user用户模块
- ios UITableView中Cell的重用机制
- 局域网其他电脑如何访问(ping通)虚拟机
- 我决定把全球每个国家的音乐都听一听
- 读《论语》
- 花千骨与虐死人的源代码
- Android 生成keystore
- Http和Socket连接区别
- 华为机试题2016(一) 简单错误记录