public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
[](()DbUtil.java
package com.sjsq.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
数据库的连接
@author shuijianshiqing
*/
public class DbUtil {
// 数据库驱动名
private static String DriverName = “com.mysql.cj.jdbc.Driver”;
// 数据库协议
private static String dbUril = “jdbc:mysql://localhost:3306/db_warehouse?serverTimezone=UTC”;
// 数据库用户名
private static String dbName = “root”;
// 数据库密码
private static String dbPassword = “admin”;
/**
数据库驱动的加载与数据库连接
@return
@throws Exception
*/
public static Connection getCon() throws Exception {
Class.forName(DriverName);
Connection conn = DriverManager.getConnection(dbUril, dbName, dbPassword);
return conn;
}
/**
关闭数据库连接
@param conn
@throws SQLException
*/
public static void close(Connection conn) throws SQLException {
if (conn != null) {
conn.close();
}
}
/**
关闭数据库连接
@param conn
@param rs
@throws SQLException
*/
public static void close(Connection conn, ResultSet rs) throws SQLException {
if (rs != null) {
rs.close();
if (conn != null) {
conn.close();
}
}
}
/**
测试main()方法
@param args
*/
public static void main(String[] args) {
try {
getCon();
System.out.println(“数据库连接成功!”);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(“数据库连接失败!”);
}
}
}
[](()StringUtil.java
package com.sjsq.util;
/**
判断用户的输入是否为空方法类
@author shuijianshiqing
*/
public class StringUtil {
/**
判断字符串是否为空
@param str
@return
*/
public static boolean isEmpty(String str) {
if (str == null || “”.equals(str.trim())) {
return true;
} else {
return false;
}
}
/**
判断字符串是否不为空
@param str
@return
*/
public static boolean isNotEmpty(String str) {
if (str != null && !“”.equals(str.trim())) {
return true;
} else {
return false;
}
}
}
[](()GoodsDao.java
package com.sjsq.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.sjsq.model.Goods;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
/**
货物控制操作包
@author Peter
@author shuijianshiqing
*/
public class GoodsDao {
/**
货物删除事件
@param conn
@param goods
@return
@throws Exception
*/
public static int deleteGoods(Connection conn, Goods goods) throws Exception {
String sql = “delete from t_goods where id = ?”;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, goods.getId());
return pstmt.executeUpdate();
}
/**
货物更新事件
@param conn
@param goods
@return
@throws Exception
*/
public static int updateGoods(Connection conn, Goods goods) throws Exception {
String sql = “update t_goods set goodsName=?, goodsSupplier=?, sex=?,”
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, goods.getGoodsName());
pstmt.setString(2, goods.getGoodsSupplier());
pstmt.setString(3, goods.getSex());
pstmt.setDouble(4, goods.getPrice());
pstmt.setString(5, goods.getGoodsDesc());
pstmt.setInt(6, goods.getGoodsTypeId());
pstmt.setInt(7, goods.getId());
return pstmt.executeUpdate();
}
/**
货物查询事件
@param conn
@param goods
@return
@throws Exception
*/
public static ResultSet listGoods(Connection conn, Goods goods) throws Exception {
StringBuffer sb = new StringBuffer(“select * from t_goods t_g, t_goodsType t_gt where t_g.goodsTypeId=t_gt.id”);
if (StringUtil.isNotEmpty(goods.getGoodsName())) {
sb.append(" and t_g.goodsName like ‘%" + goods.getGoodsName() + "%’");
}
if (StringUtil.isNotEmpty(goods.getGoodsSupplier())) {
sb.append(" and t_g.goodsSupplier like ‘%" + goods.getGoodsSupplier() + "%’");
}
if (goods.getGoodsTypeId() != null && goods.getGoodsTypeId() != -1) {
sb.append(" and t_g.goodsTypeId like ‘%" + goods.getGoodsTypeId() + "%’");
}
PreparedStatement pstmt = conn.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
/**
添加货物
@param conn
@param goods
@return
@throws Exception
*/
public static int addGoods(Connection conn, Goods goods) throws Exception {
String sql = “insert into t_goods values(null, ?, ?, ?, ?, ?, ?,?)”;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, goods.getGoodsName());
pstmt.setString(2, goods.getGoodsSupplier());
pstmt.setString(3, goods.getSex());
pstmt.setDouble(4, goods.getPrice());
pstmt.setString(5, goods.getGoodsDesc());
pstmt.setInt(6, goods.getGoodsTypeId());
pstmt.setString(7, goods.getGoodsTypeName());
return pstmt.executeUpdate();
}
public static void main(String[] args) {
Connection conn;
try {
conn = DbUtil.getCon();
GoodsDao goodsDao = new GoodsDao();
Goods goods = new Goods(1,“q”, “q”, “nv”, 2, “q”, 1,“AA”);
System.out.println(goods);
int result = goodsDao.addGoods(conn, goods);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
[](()UserDao.java
package com.sjsq.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.sjsq.model.User;
/**
UserDao实体类是对user管理员的操做控制
@author shuijianshiqing
*/
public class UserDao {
/**
管理员登录操作
@param conn
@param user
@return
@throws Exception
*/
public User login(Connection conn, User user) throws Exception {
User resultUser = null;
String sql = “select * from t_user where username=? and password=?”;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
resultUser = new User();
resultUser.setId(rs.getInt(“id”));
resultUser.setUsername(rs.getString(“username”));
resultUser.setPassword(rs.getString(“password”));
}
return resultUser;
}
}
[](()LoginFrm.java
package com.sjsq.view;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import com.sjsq.dao.UserDao;
import com.sjsq.model.User;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
/**
登录页面视图层
@author shuijianshiqing
*/
public class LoginFrm extends JFrame {
private static DbUtil dbUtil = new DbUtil();
private static UserDao userDao = new UserDao();
// 主板
private JPanel contentPane;
// 账号
private JTextField userNameTxt;
// 密码
private JPasswordField passwordTxt;
/**
*/
public LoginFrm() {
// 该表系统默认字体
Font font = new Font(“Dialog”, Font.PLAIN, 12);
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource) {
UIManager.put(key, font);
}
}
setIconImage(Toolkit.getDefaultToolkit().getImage(LoginFrm.class.getResource(“/images/goods_logo.png”)));
setTitle(“仓库管理系统”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 546, 369);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JLabel label = new JLabel(“仓库管理系统管理员登录界面”);
label.setFont(new Font(“宋体”, Font.BOLD, 20));
label.setIcon(new ImageIcon(LoginFrm.class.getResource(“/images/goods_logo.png”)));
JLabel label_1 = new JLabel(“账号”);
label_1.setIcon(new ImageIcon(LoginFrm.class.getResource(“/images/user.png”)));
JLabel label_2 = new JLabel(“密码”);
label_2.setIcon(new ImageIcon(LoginFrm.class.getResource(“/images/password.png”)));
userNameTxt = new JTextField();
userNameTxt.setColumns(10);
passwordTxt = new JPasswordField();
JButton btnNewButton = new JButton(“登录”);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
loginActionPerformed(arg0);
}
});
btnNewButton.setIcon(new ImageIcon(LoginFrm.class.getResource(“/images/login.png”)));
JButton button = new JButton(“重置”);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
resetValueActionPerformed(arg0);
}
});
button.setIcon(new ImageIcon(LoginFrm.class.getResource(“/images/reset.png”)));
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup().addContainerGap(99, Short.MAX_VALUE)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING).addComponent(label)
.addGroup(gl_contentPane.createSequentialGroup().addGap(38)
.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addComponent(label_2).addComponent(label_1))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
.addComponent(passwordTxt)
.addComponent(userNameTxt, GroupLayout.DEFAULT_SIZE, 167,
Short.MAX_VALUE)
.addComponent(button, Alignment.TRAILING))))
.addGap(96))
.addGroup(gl_contentPane.createSequentialGroup().addGap(176).addComponent(btnNewButton)
.addContainerGap(261, Short.MAX_VALUE)));
gl_contentPane.setVerticalGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup().addGap(29).addComponent(label).addGap(42)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(userNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(label_1))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE).addComponent(label_2)
.addComponent(passwordTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(48)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(btnNewButton, GroupLayout.PREFERRED_SIZE, 28, GroupLayout.PREFERRED_SIZE)
.addComponent(button, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE))
.addContainerGap(37, Short.MAX_VALUE)));
contentPane.setLayout(gl_contentPane);
// 居中显示
this.setLocationRelativeTo(null);
}
/**
管理员登录
@param arg0
*/
private void loginActionPerformed(ActionEvent arg0) {
String userName = this.userNameTxt.getText();
String password = new String(this.passwordTxt.getPassword());
if (StringUtil.isEmpty(userName)) {
JOptionPane.showMessageDialog(null, “用户名不能为空!”);
return;
}
if (StringUtil.isEmpty(password)) {
JOptionPane.showMessageDialog(null, “密码不能为空!”);
return;
}
User user = new User(userName, password);
Connection conn = null;
try {
conn = dbUtil.getCon();
User currentUser = userDao.login(conn, user);
if (currentUser != null) {
// JOptionPane.showMessageDialog(null, “登录成功!”);
dispose();
new MainFrm().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, “登录失败!”);
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, “登录失败!”);
} finally {
try {
dbUtil.close(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
重置事件
@param arg0
*/
private void resetValueActionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
this.resetValue();
}
/**
*/
private void resetValue() {
this.userNameTxt.setText(“”);
this.passwordTxt.setText(“”);
}
/**
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrm frame = new LoginFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
[](()MainFrm.java
package com.sjsq.view;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Toolkit;
import javax.swing.JDesktopPane;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
/**
主页面视图层
@author shuijianshiqing
*/
public class MainFrm extends JFrame {
private JPanel contentPane;
private JDesktopPane table;
/**
*/
public MainFrm() {
setTitle(“仓库系统主界面”);
setIconImage(Toolkit.getDefaultToolkit().getImage(MainFrm.class.getResource(“/images/goods_logo.png”)));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 200, 900, 800);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu menu = new JMenu(“仓库系统管理”);
menu.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/manager.png”)));
menuBar.add(menu);
JMenu menu_2 = new JMenu(“仓库系统管理”);
menu_2.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/goodmanager.png”)));
menu.add(menu_2);
JMenuItem menuItem_2 = new JMenuItem(“货物类型添加”);
menuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GoodsTypeAddInterFrm goodsTypeAddInterFrm = new GoodsTypeAddInterFrm();
goodsTypeAddInterFrm.setVisible(true);
table.add(goodsTypeAddInterFrm);
}
});
menuItem_2.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/add.png”)));
menu_2.add(menuItem_2);
JMenuItem menuItem_3 = new JMenuItem(“货物类型修改”);
menuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GoodsTypeManagerInterFrm goodsTypeManagerInterFrm = new GoodsTypeManagerInterFrm();
goodsTypeManagerInterFrm.setVisible(true);
table.add(goodsTypeManagerInterFrm);
}
});
menuItem_3.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/modify.png”)));
menu_2.add(menuItem_3);
JMenu menu_3 = new JMenu(“货物物品管理”);
menu_3.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/goods.png”)));
menu.add(menu_3);
JMenuItem menuItem_4 = new JMenuItem(“货物物品添加”);
menuItem_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GoodsAddInterFrm goodsAddInterFrm = new GoodsAddInterFrm();
goodsAddInterFrm.setVisible(true);
table.add(goodsAddInterFrm);
}
});
menuItem_4.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/add.png”)));
menu_3.add(menuItem_4);
JMenuItem menuItem_5 = new JMenuItem(“货物物品修改”);
menuItem_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GoodsManagerInterFrm goodsManagerInterFrm = new GoodsManagerInterFrm();
goodsManagerInterFrm.setVisible(true);
table.add(goodsManagerInterFrm);
}
});
menuItem_5.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/modify.png”)));
menu_3.add(menuItem_5);
JMenuItem menuItem_1 = new JMenuItem(“安全退出”);
menuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
exitSystemActionPerformed(e);
}
});
menuItem_1.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/exit.png”)));
menu.add(menuItem_1);
JMenu menu_1 = new JMenu(“联系我们”);
menu_1.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/contact.png”)));
menuBar.add(menu_1);
JMenuItem menuItem = new JMenuItem(“联系方式”);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
MyContactInterFrm myContactInterFrm = new MyContactInterFrm();
myContactInterFrm.setVisible(true);
table.add(myContactInterFrm);
}
});
menuItem.setIcon(new ImageIcon(MainFrm.class.getResource(“/images/phnoe.png”)));
menu_1.add(menuItem);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
table = new JDesktopPane();
contentPane.add(table, BorderLayout.CENTER);
// 居中显示
this.setLocationRelativeTo(null);
// 最大化处理
// this.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
/**
安全退出系统
@param e
*/
private void exitSystemActionPerformed(ActionEvent e) {
int n = JOptionPane.showConfirmDialog(null, “你确定要离开系统么”);
if (n == 0) {
dispose();
return;
}
}
/**
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrm frame = new MainFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
[](()GoodsAddInterFrm.java
package com.sjsq.view;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import com.sjsq.dao.GoodsDao;
import com.sjsq.dao.GoodsTypeDao;
import com.sjsq.model.Goods;
import com.sjsq.model.GoodsType;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
import javax.swing.ImageIcon;
/**
货物添加视图层
@author shuijianshiqing
*/
public class GoodsAddInterFrm extends JInternalFrame {
private JTextField goodsNameTxt;
private JTextField goodsSupplierTxt;
private JTextField priceTxt;
private JTextArea goodsDescTxt;
private JComboBox goodsTypeNameJcb;
private JRadioButton manJrb;
private JRadioButton femaleJrb;
private final ButtonGroup buttonGroup = new ButtonGroup();
private static DbUtil dbUtil = new DbUtil();
private static GoodsDao goodsDao = new GoodsDao();
/**
*/
public GoodsAddInterFrm() {
setClosable(true);
setIconifiable(true);
setTitle(“货物添加”);
setBounds(100, 100, 596, 399);
JLabel lblNewLabel = new JLabel(“货物名称:”);
goodsNameTxt = new JTextField();
goodsNameTxt.setColumns(10);
JLabel lblNewLabel_1 = new JLabel(“货物供应商:”);
goodsSupplierTxt = new JTextField();
goodsSupplierTxt.setColumns(10);
JLabel label = new JLabel(“供应商性别:”);
manJrb = new JRadioButton(“男”);
buttonGroup.add(manJrb);
manJrb.setSelected(true);
femaleJrb = new JRadioButton(“女”);
buttonGroup.add(femaleJrb);
JLabel lblNewLabel_2 = new JLabel(“货物价格:”);
priceTxt = new JTextField();
priceTxt.setColumns(10);
JLabel label_1 = new JLabel(“货物类别:”);
goodsTypeNameJcb = new JComboBox();
JLabel label_2 = new JLabel(“货物描述:”);
goodsDescTxt = new JTextArea();
JButton button = new JButton(“添加”);
button.setIcon(new ImageIcon(GoodsAddInterFrm.class.getResource(“/images/add.png”)));
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
addGoodsActionPerformed(arg0);
}
});
JButton button_1 = new JButton(“重置”);
button_1.setIcon(new ImageIcon(GoodsAddInterFrm.class.getResource(“/images/reset.png”)));
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
resetValueActionPerformed(e);
}
});
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(45)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout
.createSequentialGroup().addComponent(label_2).addGap(
.addComponent(goodsDescTxt, GroupLayout.PREFERRED_SIZE, 346,
GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout
.createParallelGroup(Alignment.LEADING, false)
.addGroup(groupLayout.createSequentialGroup().addComponent(label_1)
.addPreferredGap(ComponentPlacement.RELATED).addComponent(
goodsTypeNameJcb, 0, GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(goodsNameTxt, GroupLayout.PREFERRED_SIZE, 99,
GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup().addComponent(label)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(manJrb)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(femaleJrb)))
.addGap(65)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addGroup(groupLayout
.createSequentialGroup().addComponent(lblNewLabel_1)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(goodsSupplierTxt,
GroupLayout.PREFERRED_SIZE, 102,
GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lblNewLabel_2).addGap(18)
.addComponent(priceTxt))))))
.addGroup(groupLayout.createSequentialGroup().addGap(149).addComponent(button).addGap(119)
.addComponent(button_1)))
.addContainerGap(126, Short.MAX_VALUE)));
groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(38)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel)
.addComponent(goodsNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(lblNewLabel_1).addComponent(goodsSupplierTxt, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(28)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label)
.addComponent(manJrb).addComponent(femaleJrb).addComponent(lblNewLabel_2)
.addComponent(priceTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(28)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label_1)
.addComponent(goodsTypeNameJcb, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(35).addComponent(label_2))
.addGroup(groupLayout.createSequentialGroup().addGap(36).addComponent(goodsDescTxt,
GroupLayout.PREFERRED_SIZE, 83, GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(ComponentPlacement.RELATED, 25, Short.MAX_VALUE).addGroup(groupLayout
.createParallelGroup(Alignment.BASELINE).addComponent(button_1).addComponent(button))
.addGap(22)));
getContentPane().setLayout(groupLayout);
// 填充下拉列表
this.fillGoodsType();
}
/**
货物添加事件
@param arg0
*/
private void addGoodsActionPerformed(ActionEvent arg0) {
String goodsName = this.goodsNameTxt.getText();
String goodsSupplier = this.goodsSupplierTxt.getText();
String price = this.priceTxt.getText();
String goodsDesc = this.goodsDescTxt.getText();
if (StringUtil.isEmpty(goodsName)) {
JOptionPane.showMessageDialog(null, “货物名称不能为空!”);
return;
}
if (StringUtil.isEmpty(goodsSupplier)) {
JOptionPane.showMessageDialog(null, “货物供货商不能为空!”);
return;
}
if (StringUtil.isEmpty(goodsDesc)) {
JOptionPane.showMessageDialog(null, “货物描述不能为空!”);
return;
}
if (StringUtil.isEmpty(price)) {
JOptionPane.showMessageDialog(null, “货物价格不能为空!”);
return;
}
String sex = “”;
if (manJrb.isSelected()) {
sex = “男”;
} else if (femaleJrb.isSelected()) {
sex = “女”;
}
GoodsType goodsTypeName = (GoodsType) this.goodsTypeNameJcb.getSelectedItem();
int goodsTypeId = goodsTypeName.getId();
String goodsTypeNames = goodsTypeName.getGoodsTypeName();
Goods goods = new Goods(goodsName, goodsSupplier, sex, Double.parseDouble(price), goodsDesc, goodsTypeId,goodsTypeNames);
Connection conn = null;
try {
conn = DbUtil.getCon();
int result = goodsDao.addGoods(conn, goods);
if (result == 1) {
JOptionPane.showMessageDialog(null, “货物添加成功!”);
this.resetValue();
} else {
JOptionPane.showMessageDialog(null, “货物添加失败!”);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.close(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
货物表单重置事件
@param e
*/
private void resetValueActionPerformed(ActionEvent e) {
this.resetValue();
}
/**
*/
private void resetValue() {
this.goodsNameTxt.setText(“”);
this.goodsSupplierTxt.setText(“”);
this.priceTxt.setText(“”);
this.goodsDescTxt.setText(“”);
this.manJrb.setSelected(true);
if (goodsTypeNameJcb.getItemCount() > 0) {
goodsTypeNameJcb.setSelectedIndex(0);
}
}
/**
*/
private void fillGoodsType() {
Connection conn = null;
GoodsType goodsType = null;
ResultSet rs = null;
try {
conn = DbUtil.getCon();
rs = GoodsTypeDao.listGoodsType(conn, new GoodsType());
while (rs.next()) {
goodsType = new GoodsType();
goodsType.setId(rs.getInt(“id”));
goodsType.setGoodsTypeName(rs.getString(“goodsTypeName”));
this.goodsTypeNameJcb.addItem(goodsType);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
DbUtil.close(conn, rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GoodsAddInterFrm frame = new GoodsAddInterFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
[](()GoodsManagerInterFrm.java
package com.sjsq.view;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import com.sjsq.dao.GoodsDao;
import com.sjsq.dao.GoodsTypeDao;
import com.sjsq.model.Goods;
import com.sjsq.model.GoodsType;
import com.sjsq.util.DbUtil;
import com.sjsq.util.StringUtil;
/**
货物管理视图层
@author shuijianshiqing
*/
public class GoodsManagerInterFrm extends JInternalFrame {
private JTable goodsTable;
private JTextField s_goodsNameTxt;
private JTextField s_goodsSupplierTxt;
private JTextField goodsIdTxt;
private JTextField goodsNameTxt;
private JTextField priceTxt;
private JTextField goodsSupplierTxt;
private JTextArea goodsDescTxt;
private JComboBox goodsTypeNameJcb;
private JRadioButton manJrb;
private JRadioButton femaleJrb;
private JComboBox s_goodsTypeNameJcbTxt;
private final ButtonGroup buttonGroup = new ButtonGroup();
private static DbUtil dbUtil = new DbUtil();
private static GoodsDao goodsDao = new GoodsDao();
private static GoodsTypeDao goodsTypeDao = new GoodsTypeDao();
/**
*/
public GoodsManagerInterFrm() {
setTitle(“货物物品管理”);
setIconifiable(true);
setClosable(true);
setBounds(100, 100, 732, 532);
JScrollPane scrollPane = new JScrollPane();
JPanel panel = new JPanel();
panel.setBorder(
new TitledBorder(null, “货物物品添加”, TitledBorder.LEADING, TitledBorder.TOP, null, null));
// 搜索部分
JLabel label = new JLabel(“货物名称:”);
s_goodsNameTxt = new JTextField();
s_goodsNameTxt.setColumns(10);
JLabel label_1 = new JLabel(“供货商:”);
s_goodsSupplierTxt = new JTextField();
s_goodsSupplierTxt.setColumns(10);
JLabel label_2 = new JLabel(“货物类别:”);
s_goodsTypeNameJcbTxt = new JComboBox();
JButton button = new JButton(“搜索:”);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
searchGoodsActionPerformed(arg0);
}
});
button.setIcon(new ImageIcon(GoodsManagerInterFrm.class.getResource(“/images/Search.png”)));
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel
.createSequentialGroup().addContainerGap().addComponent(label)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(s_goodsNameTxt, GroupLayout.PREFERRED_SIZE, 87, GroupLayout.PREFERRED_SIZE).addGap(30)
.addComponent(label_1).addPreferredGap(ComponentPlacement.RELATED)
.addComponent(s_goodsSupplierTxt, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE).addGap(18)
.addComponent(label_2).addPreferredGap(ComponentPlacement.RELATED)
.addComponent(s_goodsTypeNameJcbTxt, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED, 22, Short.MAX_VALUE).addComponent(button)
.addContainerGap()));
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup().addContainerGap()
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(label)
.addComponent(s_goodsNameTxt, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(label_1)
.addComponent(s_goodsSupplierTxt, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(label_2)
.addComponent(s_goodsTypeNameJcbTxt, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(button))
.addContainerGap(17, Short.MAX_VALUE)));
panel.setLayout(gl_panel);
// 修改部分
JPanel panel_1 = new JPanel();
panel_1.setBorder(
new TitledBorder(null, “货物物品修改”, TitledBorder.LEADING, TitledBorder.TOP, null, null));
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
.addGroup(groupLayout.createSequentialGroup().addGap(31)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(panel_1, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE,
GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(Alignment.TRAILING,
groupLayout.createParallelGroup(Alignment.LEADING, false)
.addComponent(panel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 631,
Short.MAX_VALUE)))
.addGap(40)));
groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(23)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE).addGap(18)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 119, GroupLayout.PREFERRED_SIZE)
.addGap(18).addComponent(panel_1, GroupLayout.DEFAULT_SIZE, 249, Short.MAX_VALUE)
.addContainerGap()));
JLabel lblNewLabel = new JLabel(“货物名称:”);
goodsIdTxt = new JTextField();
goodsIdTxt.setEnabled(false);
goodsIdTxt.setColumns(10);
JLabel label_3 = new JLabel(“货物名称:”);
goodsNameTxt = new JTextField();
goodsNameTxt.setColumns(10);
JLabel label_4 = new JLabel(“供货商性别:”);
manJrb = new JRadioButton(“男”);
buttonGroup.add(manJrb);
manJrb.setSelected(true);
femaleJrb = new JRadioButton(“女”);
buttonGroup.add(femaleJrb);
JLabel lblNewLabel_1 = new JLabel(“\u8D27\u7269\u4EF7\u683C\uFF1A”);
priceTxt = new JTextField();
priceTxt.setColumns(10);
JLabel label_5 = new JLabel(“货物价格:”);
goodsSupplierTxt = new JTextField();
goodsSupplierTxt.setColumns(10);
JLabel label_6 = new JLabel(“供货商:”);
goodsTypeNameJcb = new 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 JComboBox();
JLabel label_7 = new JLabel(“货物类别:”);
goodsDescTxt = new JTextArea();
JButton button_1 = new JButton(“修改”);
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
modifyGoodsActionPerformed(arg0);
}
});
button_1.setIcon(new ImageIcon(GoodsManagerInterFrm.class.getResource(“/images/modify.png”)));
JButton button_2 = new JButton(“重置”);
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
resetValueActionPerformed(arg0);
}
});
button_2.setIcon(new ImageIcon(GoodsManagerInterFrm.class.getResource(“/images/reset.png”)));
JButton button_3 = new JButton(“删除”);
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
deleteGoodsActionPerformed(arg0);
}
});
button_3.setIcon(new ImageIcon(GoodsManagerInterFrm.class.getResource(“/images/delete.png”)));
GroupLayout gl_panel_1 = new GroupLayout(panel_1);
gl_panel_1.setHorizontalGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1
.createSequentialGroup().addContainerGap()
.addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1.createSequentialGroup()
.addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1
.createSequentialGroup().addComponent(lblNewLabel)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(goodsIdTxt, GroupLayout.PREFERRED_SIZE, 53, GroupLayout.PREFERRED_SIZE)
.addGap(26).addComponent(label_3).addPreferredGap(ComponentPlacement.RELATED)
.addComponent(goodsNameTxt, GroupLayout.PREFERRED_SIZE, 111,
GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panel_1.createSequentialGroup().addComponent(lblNewLabel_1)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(priceTxt, GroupLayout.PREFERRED_SIZE, 84,
GroupLayout.PREFERRED_SIZE)
.addGap(26).addComponent(label_5).addPreferredGap(ComponentPlacement.RELATED)
.addComponent(goodsSupplierTxt, GroupLayout.PREFERRED_SIZE, 112,
GroupLayout.PREFERRED_SIZE)))
.addGap(50)
.addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_1.createSequentialGroup().addComponent(label_4)
.addPreferredGap(ComponentPlacement.UNRELATED).addComponent(manJrb).addGap(18)
.addComponent(femaleJrb))
.addGroup(gl_panel_1.createSequentialGroup().addComponent(label_6).addGap(18)
.addComponent(goodsTypeNameJcb, GroupLayout.PREFERRED_SIZE, 127,
GroupLayout.PREFERRED_SIZE))))
.addComponent(label_7).addComponent(goodsDescTxt, Alignment.TRAILING,
GroupLayout.PREFERRED_SIZE, 518, GroupLayout.PREFERRED_SIZE))
.addContainerGap(30, Short.MAX_VALUE))
.addGroup(gl_panel_1.createSequentialGroup().addGap(93).addComponent(button_1)
.addPreferredGap(ComponentPlacement.RELATED, 128, Short.MAX_VALUE).addComponent(button_2)
.addGap(112).addComponent(button_3).addGap(69)));
gl_panel_1.setVerticalGroup(gl_panel_1.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_1
.createSequentialGroup().addGap(
.addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel)
.addComponent(goodsIdTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(label_3)
.addComponent(goodsNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(femaleJrb).addComponent(manJrb).addComponent(label_4))
.addGap(18)
.addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_1)
.addComponent(priceTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(label_5)
.addComponent(goodsSupplierTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(label_6).addComponent(goodsTypeNameJcb, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addComponent(label_7)
.addComponent(goodsDescTxt, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED, 29, Short.MAX_VALUE)
.addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(button_1)
.addComponent(button_3).addComponent(button_2))
.addContainerGap()));
panel_1.setLayout(gl_panel_1);
goodsTable = new JTable();
goodsTable.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent arg0) {
MouseClickGoodsTableActionPerformed(arg0);
}
});
goodsTable.setModel(new DefaultTableModel(new Object[][] {},
new String[] { “货物编号”, “货物名称”,“供货商”, “性别”,
“货物价格”, “货物描述”, “货物类别” }) {
boolean[] columnEditables = new boolean[] { false, false, false, false, false, false, false };
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
scrollPane.setViewportView(goodsTable);
getContentPane().setLayout(groupLayout);
// 填充表单
this.fillGoodsTable(new Goods());
this.fillGoodsTypeNameItem(“search”);
this.fillGoodsTypeNameItem(“modify”);
}
/**
货物删除事件
@param arg0
*/
private void deleteGoodsActionPerformed(ActionEvent arg0) {
String id = this.goodsIdTxt.getText();
if (StringUtil.isEmpty(id)) {
JOptionPane.showMessageDialog(null, “请选择要删除的货物”);
return;
}
int n = JOptionPane.showConfirmDialog(null, “确定要删除此货物?”);
Goods goods = new Goods(Integer.parseInt(id));
if (n == 0) {
Connection conn = null;
try {
conn = dbUtil.getCon();
int result = goodsDao.deleteGoods(conn, goods);
if (result == 1) {
JOptionPane.showMessageDialog(null, “货物删除成功!”);
this.resetValue();
this.fillGoodsTable(new Goods());
} else {
JOptionPane.showMessageDialog(null, “货物删除失败!”);
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, “货物删除失败!”);
} finally {
try {
dbUtil.close(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
货物修改事件
@param a
*/
private void modifyGoodsActionPerformed(Object a) {
String id = this.goodsIdTxt.getText();
String goodsName = this.goodsNameTxt.getText();
String price = this.priceTxt.getText();
String goodsSupplier = this.goodsSupplierTxt.getText();
String goodsDesc = this.goodsDescTxt.getText();
if (StringUtil.isEmpty(id)) {
JOptionPane.showMessageDialog(null, “请选择要修改的货物”);
return;
}
if (StringUtil.isEmpty(goodsName)) {
JOptionPane.showMessageDialog(null, “货物名称不能为空!”);
return;
}
if (StringUtil.isEmpty(price)) {
JOptionPane.showMessageDialog(null, “货物价格不能为空!”);
return;
}
if (StringUtil.isEmpty(goodsSupplier)) {
JOptionPane.showMessageDialog(null, “供货商名称不能为空!”);
return;
}