书店管理系统
书店管理系统可以说是设计模式及设计思想的一个比较经典的例子。
本系列将分为多个部分讲述此输电管理系统。
书店管理系统将分为:用户、图书、进货、销售和库存五个模块,另外还有公共包、工具包和登录包,另外还有一个框架。
对于分层设计,都是表现层可以调用逻辑层,逻辑层调用数据层,数据层调用工具和公共包,方向不可打乱,必须严格按照这种模式。
本篇将做用户模块部分。
如前面所言,用户模块分为了数据层、业务逻辑层、表现层和值对象层
数据层和逻辑层又分了接口、实现和工厂三个包,里面分别存放接口、实现类和工厂类
表现层写的则是图形界面的文件
本系列所有的表现层界面全部都用面板写,因此需要有一个JFrame来承载,在这里写掉JFrame,后面的图形界面都用这个。
框架:
/* * BookStore.java * * Created on __DATE__, __TIME__ */ package cn.hncu; import java.awt.event.ActionEvent; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import cn.hncu.book.ui.BookListPanel; import cn.hncu.login.ui.LoginPanel; import cn.hncu.out.ui.ListPanel; import cn.hncu.user.ui.UserListPanel; /** * * @author __USER__ */ public class BookStore extends javax.swing.JFrame { private final String dir = "./Images/"; /** Creates new form BookStore */ public BookStore() { setBack(); initComponents(); this.setContentPane(new LoginPanel(this)); this.validate(); } private void setBack() { //把当前JFrame的内容窗格设成透明,这样放在其中的组件就能够显示出背景 ((JPanel) (this.getContentPane())).setOpaque(false);//1 Icon bgImage = new ImageIcon(dir + "bg.png");//路径从项目根目录 //Icon bgImage = new ImageIcon(dir+"a.gif");//显示gif动态图也可以 JLabel bgLabel = new JLabel(bgImage); //根据给的整数值决定在上层还是下层显示,数值越小显示在越下面的位置 this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE));//2 bgLabel .setBounds(0, 0, bgImage.getIconWidth(), bgImage .getIconHeight());//3 //以下是测试,看看上面的图片是不是能够显示成背景 // JButton btn = new JButton("OK"); // this.getLayeredPane().add(btn); // btn.setBounds(100, 100, 80, 50); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { menuBar = new javax.swing.JMenuBar(); fileMenu = new javax.swing.JMenu(); openMenuItem = new javax.swing.JMenuItem(); saveMenuItem = new javax.swing.JMenuItem(); saveAsMenuItem = new javax.swing.JMenuItem(); exitMenuItem = new javax.swing.JMenuItem(); editMenu = new javax.swing.JMenu(); cutMenuItem = new javax.swing.JMenuItem(); copyMenuItem = new javax.swing.JMenuItem(); pasteMenuItem = new javax.swing.JMenuItem(); deleteMenuItem = new javax.swing.JMenuItem(); jMenu1 = new javax.swing.JMenu(); jMenuItemUser = new javax.swing.JMenuItem(); jMenuItemBook = new javax.swing.JMenuItem(); jMenuItemIn = new javax.swing.JMenuItem(); jMenuItemOut = new javax.swing.JMenuItem(); jMenuItemStock = new javax.swing.JMenuItem(); jMenuItemLogout = new javax.swing.JMenuItem(); helpMenu = new javax.swing.JMenu(); contentsMenuItem = new javax.swing.JMenuItem(); aboutMenuItem = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMinimumSize(new java.awt.Dimension(800, 600)); getContentPane().setLayout(null); fileMenu.setText("File"); openMenuItem.setText("Open"); fileMenu.add(openMenuItem); saveMenuItem.setText("Save"); fileMenu.add(saveMenuItem); saveAsMenuItem.setText("Save As ..."); fileMenu.add(saveAsMenuItem); exitMenuItem.setText("Exit"); exitMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitMenuItemActionPerformed(evt); } }); fileMenu.add(exitMenuItem); menuBar.add(fileMenu); editMenu.setText("Edit"); cutMenuItem.setText("Cut"); editMenu.add(cutMenuItem); copyMenuItem.setText("Copy"); editMenu.add(copyMenuItem); pasteMenuItem.setText("Paste"); editMenu.add(pasteMenuItem); deleteMenuItem.setText("Delete"); editMenu.add(deleteMenuItem); menuBar.add(editMenu); jMenu1.setText("Patterns"); jMenuItemUser.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemUser.setText("user"); jMenuItemUser.setEnabled(false); jMenuItemUser.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemUserActionPerformed(evt); } }); jMenu1.add(jMenuItemUser); jMenuItemBook.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemBook.setText("book"); jMenuItemBook.setEnabled(false); jMenuItemBook.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemBookActionPerformed(evt); } }); jMenu1.add(jMenuItemBook); jMenuItemIn.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemIn.setText("in"); jMenuItemIn.setEnabled(false); jMenuItemIn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemInActionPerformed(evt); } }); jMenu1.add(jMenuItemIn); jMenuItemOut.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemOut.setText("out"); jMenuItemOut.setEnabled(false); jMenuItemOut.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemOutActionPerformed(evt); } }); jMenu1.add(jMenuItemOut); jMenuItemStock.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemStock.setText("stock"); jMenuItemStock.setEnabled(false); jMenuItemStock.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemStockActionPerformed(evt); } }); jMenu1.add(jMenuItemStock); jMenuItemLogout.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_MASK)); jMenuItemLogout.setText("logout"); jMenuItemLogout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItemLogoutActionPerformed(evt); } }); jMenu1.add(jMenuItemLogout); menuBar.add(jMenu1); helpMenu.setText("Help"); contentsMenuItem.setText("Contents"); helpMenu.add(contentsMenuItem); aboutMenuItem.setText("About"); helpMenu.add(aboutMenuItem); menuBar.add(helpMenu); setJMenuBar(menuBar); pack(); }// </editor-fold> //GEN-END:initComponents private void jMenuItemLogoutActionPerformed(java.awt.event.ActionEvent evt) { jMenuItemUser.setEnabled(false); jMenuItemBook.setEnabled(false); jMenuItemIn.setEnabled(false); jMenuItemOut.setEnabled(false); jMenuItemStock.setEnabled(false); this.setContentPane(new LoginPanel(this)); this.validate(); } public javax.swing.JMenuItem getjMenuItemBook() { return jMenuItemBook; } public javax.swing.JMenuItem getjMenuItemIn() { return jMenuItemIn; } public javax.swing.JMenuItem getjMenuItemOut() { return jMenuItemOut; } public javax.swing.JMenuItem getjMenuItemStock() { return jMenuItemStock; } public javax.swing.JMenuItem getjMenuItemUser() { return jMenuItemUser; } private void jMenuItemStockActionPerformed(java.awt.event.ActionEvent evt) { this.setContentPane(new cn.hncu.stock.ui.ListPanel(this)); this.validate(); } private void jMenuItemOutActionPerformed(java.awt.event.ActionEvent evt) { this.setContentPane(new ListPanel(this)); this.validate(); } private void jMenuItemInActionPerformed(java.awt.event.ActionEvent evt) { this.setContentPane(new cn.hncu.in.ui.ListPanel(this)); this.validate(); } protected void jMenuItemUserActionPerformed(ActionEvent evt) { this.setContentPane(new UserListPanel(this)); this.validate(); } private void jMenuItemBookActionPerformed(java.awt.event.ActionEvent evt) { this.setContentPane(new BookListPanel(this)); this.validate(); } private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed System.exit(0); }//GEN-LAST:event_exitMenuItemActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new BookStore().setVisible(true); } }); } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JMenuItem aboutMenuItem; private javax.swing.JMenuItem contentsMenuItem; private javax.swing.JMenuItem copyMenuItem; private javax.swing.JMenuItem cutMenuItem; private javax.swing.JMenuItem deleteMenuItem; private javax.swing.JMenu editMenu; private javax.swing.JMenuItem exitMenuItem; private javax.swing.JMenu fileMenu; private javax.swing.JMenu helpMenu; private javax.swing.JMenu jMenu1; private javax.swing.JMenuItem jMenuItemBook; private javax.swing.JMenuItem jMenuItemIn; private javax.swing.JMenuItem jMenuItemLogout; private javax.swing.JMenuItem jMenuItemOut; private javax.swing.JMenuItem jMenuItemStock; private javax.swing.JMenuItem jMenuItemUser; private javax.swing.JMenuBar menuBar; private javax.swing.JMenuItem openMenuItem; private javax.swing.JMenuItem pasteMenuItem; private javax.swing.JMenuItem saveAsMenuItem; private javax.swing.JMenuItem saveMenuItem; // End of variables declaration//GEN-END:variables }
数据层:
1、接口
package cn.hncu.user.dao.dao; import java.util.List; import cn.hncu.user.vo.UserModel; import cn.hncu.user.vo.UserQueryModel; /** * * @author Lenovo * 用户模块的数据层接口 */ public interface UserDAO { public boolean create(UserModel user); public boolean delete(String uuid); public boolean upDate(UserModel user); public UserModel getSingle(String uuid); public List<UserModel> getAll(); public List<UserModel> getByCondition(UserQueryModel uqm); }2、实现类
package cn.hncu.user.dao.impl; import java.util.ArrayList; import java.util.List; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.dao.dao.UserDAO; import cn.hncu.utils.FileIo; import cn.hncu.user.vo.UserModel; import cn.hncu.user.vo.UserQueryModel; public class UserDAOImpl implements UserDAO { private static final String FILE_NAME="user.txt"; @Override public boolean create(UserModel user) { List<UserModel> list=FileIo.read(FILE_NAME); for (UserModel u:list){ if (u.getUuid().equals(user.getUuid())){ return false; } } list.add(user); FileIo.write(list, FILE_NAME); return true; } @Override public boolean delete(String uuid) { List<UserModel> list=FileIo.read(FILE_NAME); for (int i=0;i<list.size();i++){ if (list.get(i).getUuid().equals(uuid)){ list.remove(i); FileIo.write(list, FILE_NAME); return true; } } //该用户不存在 return false; } @Override public List<UserModel> getAll() { List<UserModel> list=FileIo.read(FILE_NAME); return list; } @Override public List<UserModel> getByCondition(UserQueryModel uqm) { List<UserModel> list=getAll(); List<UserModel> results=new ArrayList<UserModel>(); for (UserModel user:list){ //反逻辑,卫条件: 外层判断用户输入是否是查询条件;内层判断该对象是否符合查询条件 if (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().indexOf(uqm.getName())==-1){ continue; } } if (uqm.getType()>0){ if (uqm.getType()!=user.getType()){ continue; } } results.add(user); } return results; } @Override public UserModel getSingle(String uuid) { List<UserModel> list=FileIo.read(FILE_NAME); for (UserModel u:list){ if (u.getUuid().equals(uuid)){ return u; } } //不存在该uuid对应的用户,返回空 return null; } @Override public boolean upDate(UserModel user) { List<UserModel> list=FileIo.read(FILE_NAME); for (int i=0;i<list.size();i++){ if (list.get(i).getUuid().equals(user.getUuid())){ list.set(i, user); FileIo.write(list, FILE_NAME); return true; } } //不存在该用户,修改失败 return false; } }3、工厂类
package cn.hncu.user.dao.factory; import cn.hncu.user.dao.dao.UserDAO; import cn.hncu.user.dao.impl.UserDAOImpl; public class UserDAOFactory { public static UserDAO getUserDAO(){ return new UserDAOImpl(); } }
业务逻辑层:
1、接口
package cn.hncu.user.business.ebi; import java.util.List; import cn.hncu.user.vo.UserModel; import cn.hncu.user.vo.UserQueryModel; public interface UserEbi { public boolean create(UserModel user); public boolean delete(String uuid); public boolean upDate(UserModel user); public UserModel getSingle(String uuid); public List<UserModel> getAll(); public List<UserModel> getByCondition(UserQueryModel uqm); //此处可以在做到其他模块需要添加功能时来添加方法 public List<UserModel> getAllIn(); public UserModel getUserByName(String name); public List<UserModel> getAllOut(); }2、实现类
package cn.hncu.user.business.ebo; import java.util.List; import cn.hncu.common.UserTypeEnum; import cn.hncu.common.UuidModelConstance; import cn.hncu.common.uuid.dao.factory.UuidDAOFactory; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.dao.dao.UserDAO; import cn.hncu.user.dao.factory.UserDAOFactory; import cn.hncu.user.vo.UserModel; import cn.hncu.user.vo.UserQueryModel; public class UserEbo implements UserEbi { UserDAO dao=UserDAOFactory.getUserDAO(); @Override public boolean create(UserModel user) { String uuid=UuidDAOFactory.getUuidDAO().getNextUuid(UuidModelConstance.USER); user.setUuid(uuid); return dao.create(user); } @Override public boolean delete(String uuid) { return dao.delete(uuid); } @Override public List<UserModel> getAll() { return dao.getAll(); } @Override public List<UserModel> getByCondition(UserQueryModel uqm) { return dao.getByCondition(uqm); } @Override public UserModel getSingle(String uuid) { return dao.getSingle(uuid); } @Override public boolean upDate(UserModel user) { return dao.upDate(user); } @Override public List<UserModel> getAllIn() { UserQueryModel uqm=new UserQueryModel(); uqm.setType(UserTypeEnum.IN.getType()); return getByCondition(uqm); } @Override public UserModel getUserByName(String name) { List<UserModel> list=getAll(); for (UserModel user:list){ if (user.getName().equals(name)){ return user; } } return null; } @Override public List<UserModel> getAllOut() { UserQueryModel uqm=new UserQueryModel(); uqm.setType(UserTypeEnum.OUT.getType()); return getByCondition(uqm); } }3、工厂类
package cn.hncu.user.business.factory; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.ebo.UserEbo; public class UserEbiFactory { public static UserEbi getUserEbi(){ return new UserEbo(); } }
用户类:
package cn.hncu.user.vo; import java.io.Serializable; import cn.hncu.common.UserTypeEnum; public class UserModel implements Serializable{ private String uuid; private String name; private int type; private String pwd; public UserModel() { super(); } 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; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; UserModel other = (UserModel) obj; if (uuid == null) { if (other.uuid != null) return false; } else if (!uuid.equals(other.uuid)) return false; return true; } @Override public String toString() { return uuid+","+name+","+UserTypeEnum.getNameByType(type); } }用户查询类:
package cn.hncu.user.vo; public class UserQueryModel extends UserModel{ }
表现层:
用户列表:
/* * ListPanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.user.ui; import java.util.List; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.vo.UserModel; /** * * @author __USER__ */ public class UserListPanel extends javax.swing.JPanel { private final String dir = "./Images/"; private JFrame mainFrame = null; /** Creates new form ListPanel */ public UserListPanel(JFrame mainFrame) { this.mainFrame = mainFrame; this.setOpaque(false); initComponents(); myInit(); // setBack(); } public UserListPanel(JFrame mainFrame, List<UserModel> list) { this.mainFrame = mainFrame; initComponents(); userList.setListData(list.toArray()); } private void myInit() { UserEbi ebi = UserEbiFactory.getUserEbi(); List<UserModel> list = ebi.getAll(); userList.setListData(list.toArray()); } // private void setBack() { // //把当前JFrame的内容窗格设成透明,这样放在其中的组件就能够显示出背景 // ((JPanel)(this.getContentPane())).setOpaque(false);//1 // // Icon bgImage = new ImageIcon(dir+"bg.png");//路径从项目根目录 // //Icon bgImage = new ImageIcon(dir+"a.gif");//显示gif动态图也可以 // JLabel bgLabel = new JLabel(bgImage); // //根据给的整数值决定在上层还是下层显示,数值越小显示在越下面的位置 // this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE));//2 // bgLabel.setBounds(0, 0, bgImage.getIconWidth(), bgImage.getIconHeight());//3 // this.add(bgLabel); // // //以下是测试,看看上面的图片是不是能够显示成背景 //// JButton btn = new JButton("OK"); //// this.getLayeredPane().add(btn); //// btn.setBounds(100, 100, 80, 50); // } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); userList = new javax.swing.JList(); queryBtn = new javax.swing.JButton(); addBtn = new javax.swing.JButton(); deleteBtn = new javax.swing.JButton(); btnUpdate = new javax.swing.JButton(); setLayout(null); jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24)); jLabel1.setForeground(new java.awt.Color(102, 255, 102)); jLabel1.setText("\u7528\u6237\u5217\u8868"); add(jLabel1); jLabel1.setBounds(340, 40, 150, 70); userList.setModel(new javax.swing.AbstractListModel() { String[] strings = { "" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jScrollPane1.setViewportView(userList); add(jScrollPane1); jScrollPane1.setBounds(240, 110, 300, 170); queryBtn.setText("\u67e5\u8be2"); queryBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queryBtnActionPerformed(evt); } }); add(queryBtn); queryBtn.setBounds(530, 330, 63, 29); addBtn.setText("\u6dfb\u52a0"); addBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addBtnActionPerformed(evt); } }); add(addBtn); addBtn.setBounds(190, 330, 63, 29); deleteBtn.setText("\u5220\u9664"); deleteBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteBtnActionPerformed(evt); } }); add(deleteBtn); deleteBtn.setBounds(310, 330, 63, 29); btnUpdate.setText("\u4fee\u6539"); btnUpdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnUpdateActionPerformed(evt); } }); add(btnUpdate); btnUpdate.setBounds(420, 330, 63, 29); }// </editor-fold> //GEN-END:initComponents private void queryBtnActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new QueryPanel(mainFrame)); mainFrame.validate(); } private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) { UserModel user = (UserModel) userList.getSelectedValue(); if (user == null) { JOptionPane.showMessageDialog(null, "请选择要修改的用户!"); return; } String uuid = user.getUuid(); mainFrame.setContentPane(new upDatePanel(mainFrame, uuid)); mainFrame.validate(); } private void deleteBtnActionPerformed(java.awt.event.ActionEvent evt) { UserModel user = (UserModel) userList.getSelectedValue(); if (user == null) { JOptionPane.showMessageDialog(null, "请选择要删除的用户!"); return; } String uuid = user.getUuid(); mainFrame.setContentPane(new deletePanel(mainFrame, uuid)); mainFrame.validate(); } private void addBtnActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new AddPanel(mainFrame)); mainFrame.validate(); } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JButton addBtn; private javax.swing.JButton btnUpdate; private javax.swing.JButton deleteBtn; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JButton queryBtn; private javax.swing.JList userList; // End of variables declaration//GEN-END:variables }添加用户:
/* * AddPanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.user.ui; import javax.swing.JFrame; import javax.swing.JOptionPane; import cn.hncu.common.UserTypeEnum; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.vo.UserModel; /** * * @author __USER__ */ public class AddPanel extends javax.swing.JPanel { private JFrame mainFrame = null; /** Creates new form AddPanel */ public AddPanel(JFrame mainFrame) { this.mainFrame = mainFrame; this.setOpaque(false); initComponents(); myInit(); } private void myInit() { for (UserTypeEnum type : UserTypeEnum.values()) { CombType.addItem(type.getName()); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabelType = new javax.swing.JLabel(); jLabelName = new javax.swing.JLabel(); tfdName = new javax.swing.JTextField(); CombType = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); Pwd1 = new javax.swing.JPasswordField(); Pwd2 = new javax.swing.JPasswordField(); btnAdd = new javax.swing.JButton(); btnBack = new javax.swing.JButton(); setLayout(null); jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24)); jLabel1.setForeground(new java.awt.Color(102, 255, 102)); jLabel1.setText("\u6dfb\u52a0\u7528\u6237"); add(jLabel1); jLabel1.setBounds(300, 20, 140, 70); jLabelType.setForeground(new java.awt.Color(102, 255, 102)); jLabelType.setText("\u7528\u6237\u7c7b\u578b\uff1a"); add(jLabelType); jLabelType.setBounds(150, 180, 110, 30); jLabelName.setForeground(new java.awt.Color(102, 255, 102)); jLabelName.setText("\u59d3\u540d\uff1a"); add(jLabelName); jLabelName.setBounds(180, 130, 70, 30); add(tfdName); tfdName.setBounds(250, 130, 100, 26); CombType.setModel(new javax.swing.DefaultComboBoxModel( new String[] { "请选择..." })); add(CombType); CombType.setBounds(250, 180, 170, 30); jLabel2.setForeground(new java.awt.Color(102, 255, 102)); jLabel2.setText("\u5bc6\u7801\uff1a"); add(jLabel2); jLabel2.setBounds(180, 240, 45, 20); jLabel3.setForeground(new java.awt.Color(102, 255, 102)); jLabel3.setText("\u786e\u8ba4\u5bc6\u7801\uff1a"); add(jLabel3); jLabel3.setBounds(150, 290, 100, 30); add(Pwd1); Pwd1.setBounds(250, 240, 230, 24); add(Pwd2); Pwd2.setBounds(250, 290, 230, 24); btnAdd.setText("\u6dfb\u52a0"); btnAdd.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddActionPerformed(evt); } }); add(btnAdd); btnAdd.setBounds(260, 370, 63, 29); btnBack.setText("\u8fd4\u56de"); btnBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBackActionPerformed(evt); } }); add(btnBack); btnBack.setBounds(450, 370, 63, 29); }// </editor-fold> //GEN-END:initComponents private void btnBackActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { //收集参数 // String uuid = tfdUuid.getText(); String name = tfdName.getText(); String pwd1 = new String(Pwd1.getPassword()); String pwd2 = new String(Pwd2.getPassword()); if (!pwd1.equals(pwd2)) { JOptionPane.showMessageDialog(null, "两次密码不一致,请重新输入!"); return; } int type = 0; try { type = UserTypeEnum.getTypeByName(CombType.getSelectedItem() .toString()); } catch (Exception e) { JOptionPane.showMessageDialog(null, "请指定用户类型"); return; } //组织参数 UserModel user = new UserModel(); user.setName(name); user.setPwd(pwd1); user.setType(type); // user.setUuid(uuid); //调用逻辑层 UserEbi ebi = UserEbiFactory.getUserEbi(); if (ebi.create(user)) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } else { JOptionPane.showMessageDialog(null, "该用户已存在!"); } } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JComboBox CombType; private javax.swing.JPasswordField Pwd1; private javax.swing.JPasswordField Pwd2; private javax.swing.JButton btnAdd; private javax.swing.JButton btnBack; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabelName; private javax.swing.JLabel jLabelType; private javax.swing.JTextField tfdName; // End of variables declaration//GEN-END:variables }删除用户:
/* * deletePanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.user.ui; import javax.swing.JFrame; import javax.swing.JOptionPane; import cn.hncu.common.UserTypeEnum; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.vo.UserModel; /** * * @author __USER__ */ public class deletePanel extends javax.swing.JPanel { private JFrame mainFrame = null; private String uuid = null; /** Creates new form deletePanel */ public deletePanel(JFrame mainFrame, String uuid) { this.mainFrame = mainFrame; this.uuid = uuid; this.setOpaque(false); initComponents(); myInit(); } private void myInit() { UserEbi ebi = UserEbiFactory.getUserEbi(); UserModel user = new UserModel(); user = ebi.getSingle(uuid); tfdUuid.setText(uuid); tfdUuid.setEditable(false); tfdName.setText(user.getName()); tfdName.setEditable(false); tfdType.setText(UserTypeEnum.getNameByType(user.getType())); tfdType.setEditable(false); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabelType = new javax.swing.JLabel(); jLabelName = new javax.swing.JLabel(); tfdName = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); tfdUuid = new javax.swing.JTextField(); tfdType = new javax.swing.JTextField(); btnDelete = new javax.swing.JButton(); btnBack = new javax.swing.JButton(); setLayout(null); jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24)); jLabel1.setForeground(new java.awt.Color(102, 255, 102)); jLabel1.setText("\u5220\u9664\u7528\u6237..."); add(jLabel1); jLabel1.setBounds(290, 20, 160, 80); jLabelType.setForeground(new java.awt.Color(102, 255, 102)); jLabelType.setText("\u7528\u6237\u7c7b\u578b\uff1a"); add(jLabelType); jLabelType.setBounds(110, 230, 110, 30); jLabelName.setForeground(new java.awt.Color(102, 255, 102)); jLabelName.setText("\u59d3\u540d\uff1a"); add(jLabelName); jLabelName.setBounds(140, 180, 70, 30); add(tfdName); tfdName.setBounds(210, 180, 100, 26); jLabel4.setForeground(new java.awt.Color(102, 255, 102)); jLabel4.setText("uuid\uff1a"); add(jLabel4); jLabel4.setBounds(140, 140, 52, 20); add(tfdUuid); tfdUuid.setBounds(210, 140, 100, 26); add(tfdType); tfdType.setBounds(210, 230, 160, 26); btnDelete.setText("\u5220\u9664"); btnDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnDeleteActionPerformed(evt); } }); add(btnDelete); btnDelete.setBounds(160, 360, 63, 29); btnBack.setText("\u8fd4\u56de"); btnBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBackActionPerformed(evt); } }); add(btnBack); btnBack.setBounds(370, 360, 63, 29); }// </editor-fold> //GEN-END:initComponents private void btnBackActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) { UserEbi ebi = UserEbiFactory.getUserEbi(); if (ebi.delete(uuid)) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } else { JOptionPane.showMessageDialog(null, "该用户不存在"); } } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JButton btnBack; private javax.swing.JButton btnDelete; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabelName; private javax.swing.JLabel jLabelType; private javax.swing.JTextField tfdName; private javax.swing.JTextField tfdType; private javax.swing.JTextField tfdUuid; // End of variables declaration//GEN-END:variables }修改用户:
/* * upDatePanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.user.ui; import javax.swing.JFrame; import javax.swing.JOptionPane; import cn.hncu.common.UserTypeEnum; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.vo.UserModel; /** * * @author __USER__ */ public class upDatePanel extends javax.swing.JPanel { private JFrame mainFrame = null; private String uuid = null; /** Creates new form upDatePanel */ public upDatePanel(JFrame mainFrame, String uuid) { this.mainFrame = mainFrame; this.uuid = uuid; this.setOpaque(false); initComponents(); myInit(); } private void myInit() { UserEbi ebi = UserEbiFactory.getUserEbi(); UserModel user = ebi.getSingle(uuid); user = ebi.getSingle(uuid); tfdUuid.setText(uuid); tfdUuid.setEditable(false); tfdName.setText(user.getName()); Pwd1.setText(user.getPwd()); Pwd2.setText(user.getPwd()); combType.removeAllItems(); combType.addItem(UserTypeEnum.getNameByType(user.getType())); for (UserTypeEnum u : UserTypeEnum.values()) { if (u.getType() != user.getType()) { combType.addItem(u.getName()); } } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabelType = new javax.swing.JLabel(); jLabelName = new javax.swing.JLabel(); tfdName = new javax.swing.JTextField(); jLabel = new javax.swing.JLabel(); Pwd1 = new javax.swing.JPasswordField(); jLabel4 = new javax.swing.JLabel(); tfdUuid = new javax.swing.JTextField(); btnUpDate = new javax.swing.JButton(); btnBack = new javax.swing.JButton(); combType = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); Pwd2 = new javax.swing.JPasswordField(); setForeground(new java.awt.Color(102, 255, 102)); setLayout(null); jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24)); jLabel1.setForeground(new java.awt.Color(102, 255, 102)); jLabel1.setText("\u4fee\u6539\u7528\u6237..."); add(jLabel1); jLabel1.setBounds(260, 20, 160, 80); jLabelType.setForeground(new java.awt.Color(102, 255, 102)); jLabelType.setText("\u7528\u6237\u7c7b\u578b\uff1a"); add(jLabelType); jLabelType.setBounds(80, 180, 110, 30); jLabelName.setForeground(new java.awt.Color(102, 255, 102)); jLabelName.setText("\u59d3\u540d\uff1a"); add(jLabelName); jLabelName.setBounds(110, 130, 70, 30); add(tfdName); tfdName.setBounds(180, 130, 100, 26); jLabel.setForeground(new java.awt.Color(102, 255, 102)); jLabel.setText("\u5bc6\u7801\uff1a"); add(jLabel); jLabel.setBounds(110, 230, 45, 20); add(Pwd1); Pwd1.setBounds(180, 230, 230, 24); jLabel4.setForeground(new java.awt.Color(102, 255, 102)); jLabel4.setText("uuid\uff1a"); add(jLabel4); jLabel4.setBounds(110, 90, 52, 20); add(tfdUuid); tfdUuid.setBounds(180, 90, 100, 26); btnUpDate.setText("\u4fee\u6539"); btnUpDate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnUpDateActionPerformed(evt); } }); add(btnUpDate); btnUpDate.setBounds(160, 360, 63, 29); btnBack.setText("\u8fd4\u56de"); btnBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBackActionPerformed(evt); } }); add(btnBack); btnBack.setBounds(370, 360, 63, 29); combType.setModel(new javax.swing.DefaultComboBoxModel( new String[] { "请选择" })); add(combType); combType.setBounds(180, 180, 200, 26); jLabel2.setForeground(new java.awt.Color(102, 255, 102)); jLabel2.setText("\u786e\u8ba4\u5bc6\u7801\uff1a"); add(jLabel2); jLabel2.setBounds(80, 270, 90, 20); add(Pwd2); Pwd2.setBounds(180, 270, 230, 24); }// </editor-fold> //GEN-END:initComponents private void btnBackActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } private void btnUpDateActionPerformed(java.awt.event.ActionEvent evt) { //收集参数 String uuid = tfdUuid.getText(); String name = tfdName.getText(); String pwd1 = new String(Pwd1.getPassword()); String pwd2 = new String(Pwd2.getPassword()); if (!pwd1.equals(pwd2)) { JOptionPane.showMessageDialog(null, "两次密码不一致,请重新输入!"); return; } int type = 0; try { type = UserTypeEnum.getTypeByName(combType.getSelectedItem() .toString()); } catch (Exception e) { JOptionPane.showMessageDialog(null, "请指定用户类型"); return; } //组织参数 UserModel user = new UserModel(); user.setName(name); user.setPwd(pwd1); user.setType(type); user.setUuid(uuid); //调用逻辑层 UserEbi ebi = UserEbiFactory.getUserEbi(); if (ebi.upDate(user)) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } else { JOptionPane.showMessageDialog(null, "该用户已不存在"); } } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JPasswordField Pwd1; private javax.swing.JPasswordField Pwd2; private javax.swing.JButton btnBack; private javax.swing.JButton btnUpDate; private javax.swing.JComboBox combType; private javax.swing.JLabel jLabel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabelName; private javax.swing.JLabel jLabelType; private javax.swing.JTextField tfdName; private javax.swing.JTextField tfdUuid; // End of variables declaration//GEN-END:variables }查询用户:
/* * QueryPanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.user.ui; import java.awt.event.ActionEvent; import java.util.List; import javax.swing.JFrame; import javax.swing.JOptionPane; import cn.hncu.common.UserTypeEnum; import cn.hncu.user.business.ebi.UserEbi; import cn.hncu.user.business.factory.UserEbiFactory; import cn.hncu.user.vo.UserModel; import cn.hncu.user.vo.UserQueryModel; /** * * @author __USER__ */ public class QueryPanel extends javax.swing.JPanel { private JFrame mainFrame = null; /** Creates new form QueryPanel */ public QueryPanel(JFrame mainFrame) { this.mainFrame = mainFrame; this.setOpaque(false); initComponents(); MyInit(); } private void MyInit() { for (UserTypeEnum user : UserTypeEnum.values()) { CombType.addItem(user.getName()); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ //GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabelName = new javax.swing.JLabel(); tfdName = new javax.swing.JTextField(); btnQuery = new javax.swing.JButton(); btnBack = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel(); tfdUuid = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); CombType = new javax.swing.JComboBox(); setLayout(null); jLabel1.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24)); jLabel1.setForeground(new java.awt.Color(102, 255, 102)); jLabel1.setText("\u67e5\u8be2\u7528\u6237"); add(jLabel1); jLabel1.setBounds(280, 10, 140, 70); jLabelName.setForeground(new java.awt.Color(102, 255, 102)); jLabelName.setText("\u59d3\u540d\uff1a"); add(jLabelName); jLabelName.setBounds(380, 100, 70, 30); add(tfdName); tfdName.setBounds(450, 100, 100, 30); btnQuery.setText("\u67e5\u8be2"); btnQuery.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnQueryActionPerformed(evt); } }); add(btnQuery); btnQuery.setBounds(230, 310, 63, 30); btnBack.setText("\u8fd4\u56de"); btnBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBackActionPerformed(evt); } }); add(btnBack); btnBack.setBounds(410, 310, 63, 30); jLabel4.setForeground(new java.awt.Color(102, 255, 102)); jLabel4.setText("uuid\uff1a"); add(jLabel4); jLabel4.setBounds(110, 100, 52, 20); add(tfdUuid); tfdUuid.setBounds(180, 100, 100, 30); jLabel2.setForeground(new java.awt.Color(102, 255, 102)); jLabel2.setText("\u7528\u6237\u7c7b\u578b\uff1a"); add(jLabel2); jLabel2.setBounds(80, 200, 100, 40); CombType.setModel(new javax.swing.DefaultComboBoxModel( new String[] { "请选择..." })); add(CombType); CombType.setBounds(180, 210, 190, 26); }// </editor-fold> //GEN-END:initComponents protected void btnQueryActionPerformed(ActionEvent evt) { //1收集参数 String uuid = tfdUuid.getText(); String name = tfdName.getText(); int type = 0; if (CombType.getSelectedIndex() > 0) { type = UserTypeEnum.getTypeByName(CombType.getSelectedItem() .toString()); } //2组织参数 UserQueryModel uqm = new UserQueryModel(); uqm.setUuid(uuid); uqm.setName(name); uqm.setType(type); //3调用逻辑层 UserEbi ebi = UserEbiFactory.getUserEbi(); List<UserModel> results = ebi.getByCondition(uqm); //4返回到不同的结果页面 mainFrame.setContentPane(new UserListPanel(mainFrame, results)); mainFrame.validate(); } private void btnBackActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new UserListPanel(mainFrame)); mainFrame.validate(); } private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { //收集参数 String uuid = tfdUuid.getText(); String name = tfdName.getText(); int type = 0; if (CombType.getSelectedIndex() > 0) { type = UserTypeEnum.getTypeByName(CombType.getSelectedItem() .toString()); } //组织参数 UserQueryModel uqm = new UserQueryModel(); uqm.setName(name); uqm.setType(type); uqm.setUuid(uuid); //调用逻辑层 UserEbi ebi = UserEbiFactory.getUserEbi(); List<UserModel> list = ebi.getByCondition(uqm); mainFrame.setContentPane(new UserListPanel(mainFrame, list)); mainFrame.validate(); } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JComboBox CombType; private javax.swing.JButton btnBack; private javax.swing.JButton btnQuery; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabelName; private javax.swing.JTextField tfdName; private javax.swing.JTextField tfdUuid; // End of variables declaration//GEN-END:variables }