您的位置:首页 > 编程语言 > Java开发

Java之------单机版书店管理系统(设计思想和设计模式系列二)用户模块

2016-05-10 13:01 766 查看
书店管理系统

书店管理系统可以说是设计模式及设计思想的一个比较经典的例子。

本系列将分为多个部分讲述此输电管理系统。

书店管理系统将分为:用户、图书、进货、销售和库存五个模块,另外还有公共包、工具包和登录包,另外还有一个框架。

对于分层设计,都是表现层可以调用逻辑层,逻辑层调用数据层,数据层调用工具和公共包,方向不可打乱,必须严格按照这种模式。

本篇将做用户模块部分。

如前面所言,用户模块分为了数据层、业务逻辑层、表现层和值对象层

数据层和逻辑层又分了接口、实现和工厂三个包,里面分别存放接口、实现类和工厂类

表现层写的则是图形界面的文件

本系列所有的表现层界面全部都用面板写,因此需要有一个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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: