ListPanel类:
|
|
|
cn.hncu.bookStore.user.ui;
ListPanel类:
/* * ListPanel.java * * Created on __DATE__, __TIME__ */ package cn.hncu.bookStore.user.ui; import java.util.List; import javax.swing.JFrame; import cn.hncu.bookStore.user.business.ebi.UserEbi; import cn.hncu.bookStore.user.business.factory.UserEbiFactory; import cn.hncu.bookStore.user.vo.UserModel; /** * 表现层-用户列表面板 * * @author 陈浩翔 * @version 1.0 */ public class ListPanel extends javax.swing.JPanel { private JFrame mainFrame = null; /** Creates new form ListPanel */ public ListPanel(JFrame mainFrame) { this.mainFrame = mainFrame; initComponents(); myInitData(); } /** * 读取所有用户并添加进列表 */ private void myInitData() { UserEbi user = UserEbiFactory.getUserEbi(); List<UserModel> list = user.getAll(); userLists.setListData(list.toArray()); } /** 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() { jScrollPane1 = new javax.swing.JScrollPane(); userLists = new javax.swing.JList(); jLabel1 = new javax.swing.JLabel(); btnToAdd = new javax.swing.JButton(); setMinimumSize(new java.awt.Dimension(800, 600)); setLayout(null); userLists.setModel(new javax.swing.AbstractListModel() { String[] strings = { "" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); jScrollPane1.setViewportView(userLists); add(jScrollPane1); jScrollPane1.setBounds(150, 150, 480, 230); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 48)); jLabel1.setForeground(new java.awt.Color(204, 0, 51)); jLabel1.setText("User List"); add(jLabel1); jLabel1.setBounds(270, 30, 260, 80); btnToAdd.setFont(new java.awt.Font("Dialog", 1, 18)); btnToAdd.setText("\u6dfb\u52a0\u7528\u6237"); btnToAdd.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnToAddActionPerformed(evt); } }); add(btnToAdd); btnToAdd.setBounds(60, 420, 150, 50); }// </editor-fold> //GEN-END:initComponents private void btnToAddActionPerformed(java.awt.event.ActionEvent evt) { mainFrame.setContentPane(new AddPanel(mainFrame)); mainFrame.validate(); } //GEN-BEGIN:variables // Variables declaration - do not modify private javax.swing.JButton btnToAdd; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JList userLists; // End of variables declaration//GEN-END:variables }
UserModel类:
|
|
|
cn.hncu.bookStore.user.vo;
UserModel类:
用户值对象模块:
package cn.hncu.bookStore.user.vo; import java.io.Serializable; import cn.hncu.bookStore.common.UserTypeEnum; /** * @author 陈浩翔 * @version 1.0 * * <br/> * 用于保存用户信息的值对象<br/> * 1、可序列化<br/> * 2、私有化所有变量成员,补setter-getters方法<br/> * 3、写equals和hashCode方法----用主键(uuid)唯一标识码<br/> * 4、toString方法<br/> * 5,空参构造方法<br/> */ public class UserModel implements Serializable{ private String uuid;//用户唯一标识码 private String name;//用户名 private int type;//用户类型 private String pwd;//用户密码 public UserModel() { } /** * 功能:得到uuid-用户唯一的标识码 * * @return 返回uuid-用户唯一的标识码 */ public String getUuid() { return uuid; } /** * 功能:设置uuid-用户唯一的标识码 * @param uuid-用户唯一的标识码-String型参数 */ public void setUuid(String uuid) { this.uuid = uuid; } /** * 功能:得到用户的用户名 * @return---name-用户名 */ public String getName() { return name; } /** * 功能:设置用户的用户名 * * @param name--用户设置的用户名,String型参数 */ public void setName(String name) { this.name = name; } /** * 功能:得到用户的类型: * 1——表示为admin,可以进行全部操作 * 2——表示为能操作图书模块的人员 * 3——表示为能操作进货模块的人员 * 4——表示为能操作销售模块的人员 * 5——表示为能操作库存模块的人员 * @return 用户的类型 */ public int getType() { return type; } /** * 功能:设置用户的类型: * 1——表示为admin,可以进行全部操作 * 2——表示为能操作图书模块的人员 * 3——表示为能操作进货模块的人员 * 4——表示为能操作销售模块的人员 * 5——表示为能操作库存模块的人员 * @param type--用户的类型-int型参数 */ public void setType(int type) { this.type = type; } /** *功能:得到用户的密码 * @return String型,用户的密码 */ public String getPwd() { return pwd; } /** * 功能:设置用户的密码 * @param pwd--String型参数 */ 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); } }
UserQueryModel类:
|
|
|
cn.hncu.bookStore.user.vo;
UserQueryModel类:
虽然没有代码,但不能不写!这是查找用户时需要的。
原因我在系列一写了。
package cn.hncu.bookStore.user.vo; /** * * @author 陈浩翔 * * @version 1.0 */ public class UserQueryModel extends UserModel{ }
FileIoUtil类:
|
|
|
cn.hncu.bookStore.util;
FileIoUtil类:
package cn.hncu.bookStore.util; 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 javax.swing.JOptionPane; /** * 用户的公用数据读取写入类 * @author 陈浩翔 * * @version 1.0 */ public class FileIoUtil { public FileIoUtil() { } /** * 从数据库中读取所有的数据并返回出来 * * @param fileName:(数据表对应的文件名字) * @return 所有表的记录! */ @SuppressWarnings("unchecked")//压警告 public static<E> List<E> readFormFile(String fileName){ List<E> list = new ArrayList<E>(); final File file = new File(fileName); ObjectInputStream in =null; if(!file.exists()){ //JOptionPane.showMessageDialog(null, "数据表不存在!"); return list; } try { in = new ObjectInputStream(new FileInputStream(fileName)); try { list = (List<E>) in.readObject(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(in!=null){ try { in.close(); } catch (IOException e) { throw new RuntimeException("数据库关闭失败"); } } } return list; } /** * 写入一个list集合进入数据文件fileName * * @param list(需要存储的数据集合) * @param fileName(写入到哪个文件的文件名字) */ public static<E> void write2file(List<E> list, String fileName){ ObjectOutputStream out = null; try { out = new ObjectOutputStream(new FileOutputStream(fileName)); out.writeObject(list); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(out!=null){ try { out.close(); } catch (IOException e) { throw new RuntimeException("数据库关闭失败!"); } } } } }
BookStore类:(含main方法)
|
|
|
cn.hncu.bookStore;
BookStore类:
用户模块的main方法在这个类中:
/* * BookStore.java * * Created on __DATE__, __TIME__ */ package cn.hncu.bookStore; import cn.hncu.bookStore.user.ui.ListPanel; /** * * @author 陈浩翔 */ public class BookStore extends javax.swing.JFrame { /** Creates new form BookStore */ public BookStore() { initComponents(); this.setContentPane(new ListPanel(this)); this.setResizable(false);//不能缩放 this.setDefaultCloseOperation(EXIT_ON_CLOSE); } /** 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(); 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)); 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); helpMenu.setText("Help"); contentsMenuItem.setText("Contents"); helpMenu.add(contentsMenuItem); aboutMenuItem.setText("About"); helpMenu.add(aboutMenuItem); menuBar.add(helpMenu); setJMenuBar(menuBar); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 400, Short.MAX_VALUE)); layout.setVerticalGroup(layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 279, Short.MAX_VALUE)); pack(); }// </editor-fold> //GEN-END:initComponents 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.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 }
今天就写到这里的,未完待续。。。
目前的添加有一个小bug,就是添加用户时,什么都不输入,
只选择用户类型,也能创建!下次我会修复的。