基于java+mysql的swing+mysql药品管理系统(java+swing+gui+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于java+mysql的Swing+MySQL药品管理系统(java+swing+gui+mysql)
功能介绍:用户管理、药品库存管理、进销管理、营销管理、药品购入、药品售出、药市信息
int heigh=centerJpanel.getHeight();
g.drawImage(icon.getImage(), 0, 0, width,heigh,null);
}
};
private JLabel medicineIdJLabel = new JLabel("药品编号:");
private JTextField medicineIdJTexFed = new JTextField();
private JLabel medicinenameJLabel = new JLabel("药品名称:");
private JTextField medicinenameJTexFed = new JTextField();;
private JLabel medicinepriceJLabel = new JLabel("药品价格:");
private JTextField medicinepriceJTexFed = new JTextField();;
private JLabel medicineamountsJLabel = new JLabel("库存量: ");
private JTextField medicineamountsJTexFed = new JTextField();;
private JLabel medicineproducerJLabel = new JLabel("生产商: ");
private JTextField medicinproducerJTexFed = new JTextField();;
private JPanel southJpanel;
private JButton cancelBtn;
private JButton confirmBtn;
public AddMedicineView(Medicine smv) {
this.smv = smv;
setTitle("药品添加界面");
buildUi();
setSize(300, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void buildUi() {
setLayout(new BorderLayout(20, 20));
centerJpanel.setLayout(new GridLayout(8, 2));
centerJpanel.add(medicineIdJLabel);
centerJpanel.add(medicineIdJTexFed);
centerJpanel.add(medicinenameJLabel);
centerJpanel.add(medicinenameJTexFed);
centerJpanel.add(medicinepriceJLabel);
centerJpanel.add(medicinepriceJTexFed);
centerJpanel.add(medicineamountsJLabel);
centerJpanel.add(medicineamountsJTexFed);
centerJpanel.add(medicineproducerJLabel);
centerJpanel.add(medicinproducerJTexFed);
private JLabel medicineproducerJLabel = new JLabel("生产商: ");
private JTextField medicineproducerJTexFed = new JTextField();
private JPanel bottomAllJpane = new JPanel(){
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\puu.jpg");// 背景图片
img = icon.getImage();
g.drawImage(img, 0, 0,this.getWidth(), this.getHeight(), this);
}
};
private JPanel bottonPageJpanel = new JPanel(){
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\puu.jpg");// 背景图片
img = icon.getImage();
g.drawImage(img, 0, 0,this.getWidth(), this.getHeight(), this);
}
};
private JPanel southJpanel;
private JButton cancelBtn;
private JButton confirmBtn;
public MarketInRecords(MarketView smuv) {
this.smuv = smuv;
setTitle("进货记录");
buildUi();
setSize(400, 270);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void buildUi() {
setLayout(new BorderLayout(20, 20));
centerJpanel.setPreferredSize(new Dimension(400,170));
centerJpanel.setLayout(new GridLayout(3, 2));
centerJpanel.add(medicineIdJLabel);
}else{
JOptionPane.showConfirmDialog(null, "卖出失败","提示",JOptionPane.WARNING_MESSAGE);
}
}
class A implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton btton = (JButton) e.getSource();
if (btton.equals(cancelBtn)) {
MarketOutRecords.this.dispose();
}else{
doConfirm();
}
}
}
}
southJpanel.setBackground(Color.white);
regiestBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new RegiestView();
}
});
loginBtn = new JButton("登录");
loginBtn.setBackground(Color.lightGray);
loginBtn.setSize(100, 60);
southJpanel.add(loginBtn);
loginBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
doLogin();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
bgPanel.add(southJpanel,BorderLayout.SOUTH);
}
@SuppressWarnings("deprecation")
private void doLogin() throws SQLException{
String username = userName.getText().trim();
String password = this.password.getText().trim();
String sql = "select * from EmployeeInfo "
+ "where eid=? and password=? and isAdmin=1";
SqlHelper sqlHelper = new SqlHelper();
ResultSet result = sqlHelper.
query(sql, new String[]{username,password});
if (result.next()) {
//登录成功
new SystemMainView();
dispose();
}else{
JOptionPane.showConfirmDialog(null, "您不是管理员 无法登陆!","提示",JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String[] args) {
private JLabel medicinenameJLabel = new JLabel("药品名称:");
private JTextField medicinenameJTexFed = new JTextField();;
private JLabel medicinepriceJLabel = new JLabel("药品价格:");
private JTextField medicinepriceJTexFed = new JTextField();;
private JLabel medicineamountsJLabel = new JLabel("库存量:");
private JTextField medicineamountsJTexFed = new JTextField();;
private JLabel medicineproducerJLabel = new JLabel("生产商:");
private JTextField medicinproducerJTexFed = new JTextField();;
private JPanel southJpanel;
private JButton cancelBtn;
private JButton updateBtn;
public UpdateMedicineView(String meid,Medicine smv) {
this.eId = meid;
this.smv = smv;
setTitle("修改药品信息界面");
buildUi();
try {
initDate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void initDate() throws SQLException{
// 查询sql语句
String sql = "select * from medicine where meid=?";
// 查询数据
ResultSet result = new SqlHelper().query(sql, new String[] {eId});
if (result != null) {
while (result.next()) {
medicineIdJTexFed.setText(result.getString(1));
medicinenameJTexFed.setText(result.getString(2));
medicinepriceJTexFed.setText(result.getString(3));
medicineamountsJTexFed.setText(result.getString(5));
medicinproducerJTexFed.setText(result.getString(6));
}
while (result.next()) {
Object rows[] = new Object[6];
rows[0] = result.getString(1);
rows[1] = result.getString(2);
rows[2] = result.getString(3);
rows[3] = result.getString(4);
rows[4] = result.getString(5);
rows[5] = result.getString(6);
marketinviews.add(rows);
}
} else {
JOptionPane.showConfirmDialog(null, "没有查询到相关记录", "提示", JOptionPane.WARNING_MESSAGE);
}
return marketinviews;
}
@SuppressWarnings("unused")
private ArrayList<Object[]> getoutViewByDb() throws SQLException {
ArrayList<Object[]> marketoutviews = new ArrayList<Object[]>();
// 查询sql语句
String sql = "select * from marketoutview";
// 查询数据
ResultSet result = new SqlHelper().query(sql, new String[]{});
if (result != null) {
while (result.next()) {
Object rows[] = new Object[6];
rows[0] = result.getString(1);
rows[1] = result.getString(2);
rows[2] = result.getString(3);
rows[3] = result.getString(4);
rows[4] = result.getString(5);
rows[5] = result.getString(6);
marketoutviews.add(rows);
}
} else {
JOptionPane.showConfirmDialog(null, "没有查询到相关记录", "提示", JOptionPane.WARNING_MESSAGE);
}
return marketoutviews;
}
add(topJpanel, BorderLayout.NORTH);
searchBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getFilter();
}
});
pageCount = dataSum / pageSize;
if (dataSum % pageSize > 0) {
pageCount++;
}
refreshJTable(currntPage + 1, pageSize);
}
/**
* 查找所有员工
*
* @return
* @throws SQLException
*/
private ArrayList<Object[]> getEmployeesByDb(int begin, int size) throws SQLException {
ArrayList<Object[]> employeeslist = new ArrayList<Object[]>();
// 查询sql语句
String sql = "select * from EmployeeInfo limit " + begin + "," + size + "";
// 查询数据
ResultSet result = new SqlHelper().query(sql, new String[]{});
if (result != null) {
while (result.next()) {
Object rows[] = new Object[6];
rows[0] = result.getString(1);
rows[1] = result.getString(3);
rows[2] = result.getString(4).equals("0") ? "女" : "男";
rows[3] = result.getString(5);
rows[4] = result.getString(6);
rows[5] = result.getString(7).equals("0") ? "普通员工" : "管理员";
employeeslist.add(rows);
}
} else {
JOptionPane.showConfirmDialog(null, "没有查询到员工", "提示", JOptionPane.WARNING_MESSAGE);
}
return employeeslist;
}
private int getDataCount() throws SQLException {
int count = 0;
String sql = "select count(*) as count from EmployeeInfo";
// 查询数据
cancelBtn.setSize(100, 60);
southJpanel.add(cancelBtn);
cancelBtn.addActionListener(new A());
updateBtn = new JButton("修改员工");
updateBtn.setSize(100, 60);
southJpanel.add(updateBtn);
updateBtn.addActionListener(new A());
add(southJpanel,BorderLayout.SOUTH);
}
/**
* 注册
*/
public void updateInfo(){
//1 获取用户输入的值
String eid = userIdJTexFed.getText().trim();
String password = passwordJTexFed.getText().trim();
String ename = userNameJTexFed.getText().trim();
int sex = sexJcomBox.getSelectedIndex();
String joydate = inDateJTexFed.getText().trim();
int age = Integer.parseInt(ageJTexFed.getText().trim());
int isAdmin = isAdminJcomBox.getSelectedIndex();
//2。拼接sql语句
String sql = "update EmployeeInfo set password=?,ename=?,"
+ "sex=?,age=?,joydate=?,isAdmin=? where eid=?";
//3.执行sql语句
SqlHelper sqlHelper = new SqlHelper();
String paras [] = {password,ename,sex+"",
age+"",joydate,isAdmin+"",eid};
boolean issuccess = sqlHelper.update(sql, paras);
if (issuccess) {
JOptionPane.showConfirmDialog(null,
"修改成功","提示",JOptionPane.CLOSED_OPTION);
smv.refreshJTable(1,8);
this.dispose();
}else{
JOptionPane.showConfirmDialog(null, "修改失败","提示",JOptionPane.WARNING_MESSAGE);
}
//4.反回执行结果
}
// public static void main(String[] args) {
// new RegiestView();
// }
class A implements ActionListener{
@Override
SqlHelper sqlHelper = new SqlHelper();
ResultSet result = sqlHelper.
query(sql, new String[]{username,password});
if (result.next()) {
//登录成功
new SystemMainView();
dispose();
}else{
JOptionPane.showConfirmDialog(null, "您不是管理员 无法登陆!","提示",JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String[] args) {
new StartApplication();
}
public void componentResized(ComponentEvent e) {
System.out.println(getWidth()+"X"+ getHeight());
ImageIcon background = new ImageIcon("E:\\图片册\\lvu.jpg");// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0, 0, getWidth(),
getHeight());
JPanel imagePanel = (JPanel) getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
}
@Override
public void componentMoved(ComponentEvent e) {
}
public void componentShown(ComponentEvent e) {
}
@Override
public void componentHidden(ComponentEvent e) {
}
}
package com.view;
}
public void doConfirm(){
String mivid = medicineIdJTexFed.getText().trim();
String mivname = medicinenameJTexFed.getText().trim();
int mivinprice = Integer.parseInt(medicineinpriceJTexFed.getText().trim());
int mivamounts = Integer.parseInt(medicineinamountsJTexFed.getText().trim());
int mivcost = Integer.parseInt(medicinecostJTexFed.getText().trim());
String mvproducer=medicineproducerJTexFed.getText().trim();
String sql = "insert into marketinview(mivid,mivname,mivinprice,mivamounts,mivcost,"
+ "mivproducer)values(?,?,?,?,?,?)";
SqlHelper sqlHelper = new SqlHelper();
String paras [] = {mivid,mivname,mivinprice+"",mivamounts+"",mivcost+"",
mvproducer};
boolean issuccess = sqlHelper.update(sql, paras);
if (issuccess) {
JOptionPane.showConfirmDialog(null,
"购入成功","提示",JOptionPane.CLOSED_OPTION);
smuv.refreshinJTable();
this.dispose();
}else{
JOptionPane.showConfirmDialog(null, "购入失败","提示",JOptionPane.WARNING_MESSAGE);
}
}
class A implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton btton = (JButton) e.getSource();
if (btton.equals(cancelBtn)) {
MarketInRecords.this.dispose();
}else{
doConfirm();
}
}
}
img = icon.getImage();
//下面这行是为了背景图片可以跟随窗口自行调整大小,可以自己设置成固定大小
g.drawImage(img, 0, 0,this.getWidth(), this.getHeight(), this);
}
};
//实例化用户名密码控件
label1=new JLabel("用户:");
label1.setFont(new Font("Dialog",1,15));
userName = new JTextField(24);
label2=new JLabel("密码:");
label2.setFont(new Font("Dialog",1,15));
password = new JPasswordField(24);
//添加用户名密码控件到 中间容器中
centerJpanel.add(label1);
centerJpanel.add(userName);
centerJpanel.add(label2);
centerJpanel.add(password);
centerJpanel.setBackground(null);
//实列化欢迎字,并添加到根容器的北边
JLabel label3 = new JLabel("药品管理系统");
label3.setHorizontalAlignment(JLabel.CENTER);
label3.setFont(new Font("Dialog",1,20));
label3.setForeground(Color.green);
label3.setBackground(Color.white);
bgPanel.add(label3,BorderLayout.NORTH);
//添加中间容器到根容器的中间
bgPanel.add(centerJpanel,BorderLayout.CENTER);
southJpanel = new JPanel();
southJpanel.setBackground(Color.white);
regiestBtn = new JButton("注册");
regiestBtn.setBackground(Color.lightGray);
regiestBtn.setSize(100, 60);
southJpanel.add(regiestBtn);
southJpanel.setBackground(Color.white);
regiestBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new RegiestView();
public class RegiestView extends JFrame {
private JPanel centerJpanel = new JPanel(){
public void paintComponent(Graphics g){
super.paintComponent(g);
ImageIcon icon=new ImageIcon("E:\\图片册\\pu.jpg");
int width=centerJpanel.getWidth();
int heigh=centerJpanel.getHeight();
g.drawImage(icon.getImage(), 0, 0, width,heigh,null);
}
};
private JLabel userIdJLabel = new JLabel("用户号");
private JTextField userIdJTexFed = new JTextField();
private JLabel passwordJLabel = new JLabel("密码");
private JTextField passwordJTexFed = new JTextField();;
private JLabel userNameJLabel = new JLabel("姓名");
private JTextField userNameJTexFed = new JTextField();;
private JLabel sexJLabel = new JLabel("性别");
private String sexvalue[] = { "女", "男" };
private JComboBox sexJcomBox = new JComboBox(sexvalue);
private JLabel ageJLabel = new JLabel("年龄");
private JTextField ageJTexFed = new JTextField();;
private JLabel isAdminJLabel = new JLabel("是否管理员");
private ArrayList<Object[]> getFliterEmployeesByDb(String username, String isAdmin) throws SQLException {
ArrayList<Object[]> employeeslist = new ArrayList<Object[]>();
// 查询sql语句
String sql = "select * from EmployeeInfo where (eid like '%" + username + "%' or ename like '%" + username
+ "%') ";
// 查询数据
ResultSet result = null;
if (isAdmin == null || isAdmin.equals("")) {
sql += ";";
result = new SqlHelper().query(sql, new String[]{});
} else {
sql += " and isAdmin = '" + isAdmin + "';";
result = new SqlHelper().query(sql, new String[]{});
}
if (result != null) {
while (result.next()) {
Object rows[] = new Object[6];
rows[0] = result.getString(1);
rows[1] = result.getString(3);
rows[2] = result.getString(4).equals("0") ? "女" : "男";
rows[3] = result.getString(5);
rows[4] = result.getString(6);
rows[5] = result.getString(7).equals("0") ? "普通员工" : "管理员";
employeeslist.add(rows);
}
}
if (employeeslist.isEmpty()) {
JOptionPane.showConfirmDialog(null, "没有查询到员工", "提示", JOptionPane.WARNING_MESSAGE);
}
return employeeslist;
}
public void getFilter() {
String username = filterUsernameJTexfd.getText().trim();
String isAdmin = isAdminJTexfd.getText().trim();
dtm.setNumRows(0);
try {
datas = getFliterEmployeesByDb(username, isAdmin);
for (int i = 0; i < datas.size(); i++) {
dtm.addRow(datas.get(i));
}
eastPanel.add(deleteButton);
eastPanel.setLayout(null);
eastPanel .setPreferredSize(new Dimension(150,500));
add(eastPanel, BorderLayout.EAST);
eastPanel.setBackground(Color.cyan);
westPanel.add(meLabel);
westPanel.setPreferredSize(new Dimension(50,500));
westPanel.setBackground(Color.cyan);
add(westPanel,BorderLayout.WEST);
bottomJpanel.add(meLabel);
bottomJpanel.setBackground(Color.cyan);
bottomJpanel .setPreferredSize(new Dimension(900,50));
add(bottomJpanel,BorderLayout.SOUTH);
newButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@SuppressWarnings("unused")
AddMarketMessage aea = new AddMarketMessage(MarketMessage.this);
}
});
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// deleteEmployee();
comfirmDelete();
}
});
topJpanel.add(filterMedicineNameJLable);
filterMedicineNameJLable.setFont(new Font("Dialog",1,13));
topJpanel.add(filterMedicineNameJTexfd);
topJpanel.add(recorderJLabel);
recorderJLabel.setFont(new Font("Dialog",1,13));
topJpanel.add(recorderJTexFed);
e.printStackTrace();
}
printPageInfo();
}
/**
* 过滤查找员工
*
* @return
* @throws SQLException
*/
private ArrayList<Object[]> getFliterEmployeesByDb(String username, String isAdmin) throws SQLException {
ArrayList<Object[]> employeeslist = new ArrayList<Object[]>();
// 查询sql语句
String sql = "select * from EmployeeInfo where (eid like '%" + username + "%' or ename like '%" + username
+ "%') ";
// 查询数据
ResultSet result = null;
if (isAdmin == null || isAdmin.equals("")) {
sql += ";";
result = new SqlHelper().query(sql, new String[]{});
} else {
sql += " and isAdmin = '" + isAdmin + "';";
result = new SqlHelper().query(sql, new String[]{});
}
if (result != null) {
while (result.next()) {
Object rows[] = new Object[6];
rows[0] = result.getString(1);
rows[1] = result.getString(3);
rows[2] = result.getString(4).equals("0") ? "女" : "男";
rows[3] = result.getString(5);
rows[4] = result.getString(6);
rows[5] = result.getString(7).equals("0") ? "普通员工" : "管理员";
employeeslist.add(rows);
}
}
if (employeeslist.isEmpty()) {
JOptionPane.showConfirmDialog(null, "没有查询到员工", "提示", JOptionPane.WARNING_MESSAGE);
});
loginBtn = new JButton("登录");
loginBtn.setBackground(Color.lightGray);
loginBtn.setSize(100, 60);
southJpanel.add(loginBtn);
loginBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
doLogin();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
bgPanel.add(southJpanel,BorderLayout.SOUTH);
}
@SuppressWarnings("deprecation")
private void doLogin() throws SQLException{
String username = userName.getText().trim();
String password = this.password.getText().trim();
String sql = "select * from EmployeeInfo "
+ "where eid=? and password=? and isAdmin=1";
SqlHelper sqlHelper = new SqlHelper();
ResultSet result = sqlHelper.
query(sql, new String[]{username,password});
if (result.next()) {
//登录成功
new SystemMainView();
dispose();
}else{
JOptionPane.showConfirmDialog(null, "您不是管理员 无法登陆!","提示",JOptionPane.WARNING_MESSAGE);
}
//
buildUi();
setSize(380, 400);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
/**
* 初使化界面
*/
@SuppressWarnings("serial")
public void buildUi(){
bgPanel = new JPanel(){
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\lvu.jpg");// 背景图片
img = icon.getImage();
g.drawImage(img, 0, 0,this.getWidth(), this.getHeight(), this);
}
};
add(bgPanel);
bgPanel.setLayout(new BorderLayout(20,20));
//实例化中间容器
centerJpanel = new JPanel(){
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\lvu.jpg");// 背景图片
img = icon.getImage();
//下面这行是为了背景图片可以跟随窗口自行调整大小,可以自己设置成固定大小
g.drawImage(img, 0, 0,this.getWidth(), this.getHeight(), this);
};
private JButton newButton, updateButton, deleteButton, searchBtn;
private JPanel eastPanel = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\pu.jpg");// 背景图片
img = icon.getImage();
g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
}
};
private JPanel topJpanel = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon;
Image img;
icon = new ImageIcon("E:\\图片册\\pu.jpg");// 背景图片
img = icon.getImage();
g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
}
};
private JLabel meLabel = new JLabel(" ");
ImageIcon icon = new ImageIcon("E:\\图片册\\yin.jpg");
private ArrayList<Object[]> datas = null;
public MarketView() {
bottomAllJpane.setLayout(new BorderLayout());
bottomAllJpane.setPreferredSize(new Dimension(900, 320));
bottomAllJpane.add(centerJscrollPane1, BorderLayout.WEST);
centerJscrollPane1.setPreferredSize(new Dimension(385, 300));
bottomAllJpane.add(centerJscrollPane2, BorderLayout.CENTER);
centerJscrollPane2.setPreferredSize(new Dimension(385, 300));
dtm2.addColumn("药品id");
dtm2.addColumn("药品名称");
dtm2.addColumn("批发价");
dtm2.addColumn("批发量");
dtm2.addColumn("成本");
dtm2.addColumn("货源");
refreshinJTable();
dtm3.addColumn("药品id");
dtm3.addColumn("药品名称");
dtm3.addColumn("卖出价");
dtm3.addColumn("卖出量");