博客
关于我
Eclipse+Java+Swing实现仓库管理系统
阅读量:289 次
发布时间:2019-03-03

本文共 56847 字,大约阅读时间需要 189 分钟。

Java+Swing实现仓库管理系统

一、系统介绍

本系统实现了用户登录,实现了对货物类别的增删改查,实现了对货物的增删改查,数据库使用Mysql8.0.13,界面较良好。

二、系统展示

1.登录页面

在这里插入图片描述

2.主页面

在这里插入图片描述

3.货物类型添加页面

在这里插入图片描述

4.货物类型添加成功提示页面

在这里插入图片描述

5.货物类别修改页面

在这里插入图片描述

6.货物类型修改成功提示

在这里插入图片描述

7.货物类型修改成功显示页面

备注:修改之后的页面结果显示

在这里插入图片描述

8.货物添加页面

在这里插入图片描述

9.货物添加成功提示页面

在这里插入图片描述

10.货物修改页面

在这里插入图片描述

11.货物修改成功提示页面

在这里插入图片描述

12.货物修改成功显示页面

在这里插入图片描述

13.货物删除提示页面

在这里插入图片描述

14.退出系统提示页面

在这里插入图片描述

15.联系我们页面

在这里插入图片描述

三、系统实现

Goods.java

package com.sjsq.model;/** * Goods实体类 *  * @author shuijianshiqing * */public class Goods {   	private int id;	private String goodsName;	private String goodsSupplier;	private String sex;	private double price;	private String goodsDesc;	private Integer goodsTypeId;	private String goodsTypeName;	/**	 * 继承父类的构造方法	 */	public Goods() {   		super();	}	/**	 * 一个参数的构造方法	 * 	 * @param id	 */	public Goods(int id) {   		super();		this.id = id;	}	/**	 * 3个参数构造方法	 * 	 * @param goodsName	 * @param goodsSupplier	 * @param goodsTypeId	 */	public Goods(String goodsName, String goodsSupplier, Integer goodsTypeId) {   		super();		this.goodsName = goodsName;		this.goodsSupplier = goodsSupplier;		this.goodsTypeId = goodsTypeId;	}	/**	 * 6个参数的构造方法	 * 	 * @param goodsName	 * @param goodsSupplier	 * @param sex	 * @param price	 * @param goodsDesc	 * @param goodsTypeId	 */	public Goods(String goodsName, String goodsSupplier, String sex, double price, String goodsDesc, int goodsTypeId) {   		super();		this.goodsName = goodsName;		this.goodsSupplier = goodsSupplier;		this.sex = sex;		this.price = price;		this.goodsDesc = goodsDesc;		this.goodsTypeId = goodsTypeId;	}		/**	 * 7个参数的构造方法	 * @param goodsName	 * @param goodsSupplier	 * @param sex	 * @param price	 * @param goodsDesc	 * @param goodsTypeId	 * @param goodsTypeName	 */	public Goods(String goodsName, String goodsSupplier, String sex, double price, String goodsDesc,			Integer goodsTypeId, String goodsTypeName) {   		super();		this.goodsName = goodsName;		this.goodsSupplier = goodsSupplier;		this.sex = sex;		this.price = price;		this.goodsDesc = goodsDesc;		this.goodsTypeId = goodsTypeId;		this.goodsTypeName = goodsTypeName;	}	/**	 * 7个参数的构造方法	 * 	 * @param id	 * @param goodsName	 * @param goodsSupplier	 * @param sex	 * @param price	 * @param goodsDesc	 * @param goodsTypeId	 */	public Goods(int id, String goodsName, String goodsSupplier, String sex, double price, String goodsDesc,			Integer goodsTypeId) {   		super();		this.id = id;		this.goodsName = goodsName;		this.goodsSupplier = goodsSupplier;		this.sex = sex;		this.price = price;		this.goodsDesc = goodsDesc;		this.goodsTypeId = goodsTypeId;	}			/**	 * 8个参数的构造方法	 * @param id	 * @param goodsName	 * @param goodsSupplier	 * @param sex	 * @param price	 * @param goodsDesc	 * @param goodsTypeId	 * @param goodsTypeName	 */	public Goods(int id, String goodsName, String goodsSupplier, String sex, double price, String goodsDesc,			Integer goodsTypeId, String goodsTypeName) {   		super();		this.id = id;		this.goodsName = goodsName;		this.goodsSupplier = goodsSupplier;		this.sex = sex;		this.price = price;		this.goodsDesc = goodsDesc;		this.goodsTypeId = goodsTypeId;		this.goodsTypeName = goodsTypeName;	}	public int getId() {   		return id;	}	public void setId(int id) {   		this.id = id;	}	public String getGoodsName() {   		return goodsName;	}	public void setGoodsName(String goodsName) {   		this.goodsName = goodsName;	}	public String getGoodsSupplier() {   		return goodsSupplier;	}	public void setGoodsSupplier(String goodsSupplier) {   		this.goodsSupplier = goodsSupplier;	}	public String getSex() {   		return sex;	}	public void setSex(String sex) {   		this.sex = sex;	}	public double getPrice() {   		return price;	}	public void setPrice(double price) {   		this.price = price;	}	public String getGoodsDesc() {   		return goodsDesc;	}	public void setGoodsDesc(String goodsDesc) {   		this.goodsDesc = goodsDesc;	}	public Integer getGoodsTypeId() {   		return goodsTypeId;	}	public void setGoodsTypeId(Integer goodsTypeId) {   		this.goodsTypeId = goodsTypeId;	}	public String getGoodsTypeName() {   		return goodsTypeName;	}	@Override	public String toString() {   		return "Goods [id=" + id + ", goodsName=" + goodsName + ", goodsSupplier=" + goodsSupplier + ", sex=" + sex				+ ", price=" + price + ", goodsDesc=" + goodsDesc + ", goodsTypeId=" + goodsTypeId + ", goodsTypeName="				+ goodsTypeName + "]";	}		}

GoodsType.java

package com.sjsq.model;/** * GoodsType实体类 *  * @author shuijianshiqing * */public class GoodsType {   		// 货物类型Id	private int id;	// 获取类型名称	private String goodsTypeName;	// 货物类型描述	private String goodsTypeDesc;	/**	 * 继承自父类的构造方法	 */	public GoodsType() {   		super();	}	/**	 * 一个参数的构造方法	 * 	 * @param goodsTypeName	 */	public GoodsType(String goodsTypeName) {   		super();		this.goodsTypeName = goodsTypeName;	}	/**	 * 一个参数的构造方法	 * 	 * @param id	 */	public GoodsType(int id) {   		super();		this.id = id;	}	/**	 * 2个参数的构造方法	 * 	 * @param goodsTypeName	 * @param goodsTypeDesc	 */	public GoodsType(String goodsTypeName, String goodsTypeDesc) {   		super();		this.goodsTypeName = goodsTypeName;		this.goodsTypeDesc = goodsTypeDesc;	}	/**	 * 3个参数构造方法	 * 	 * @param id	 * @param goodsTypeName	 * @param goodsTypeDesc	 */	public GoodsType(int id, String goodsTypeName, String goodsTypeDesc) {   		super();		this.id = id;		this.goodsTypeName = goodsTypeName;		this.goodsTypeDesc = goodsTypeDesc;	}	@Override	public String toString() {   		return goodsTypeName;	}	// Set和Get方法	public int getId() {   		return id;	}	public void setId(int id) {   		this.id = id;	}	public String getGoodsTypeName() {   		return goodsTypeName;	}	public void setGoodsTypeName(String goodsTypeName) {   		this.goodsTypeName = goodsTypeName;	}	public String getGoodsTypeDesc() {   		return goodsTypeDesc;	}	public void setGoodsTypeDesc(String goodsTypeDesc) {   		this.goodsTypeDesc = goodsTypeDesc;	}}

User.java

package com.sjsq.model;/** * 管理员t_user表的User实体类 *  * @author shuijianshiqing * */public class User {   	private int id;// id字段	private String username;// username字段	private String password;// password字段	// 继承父类的构造方法	public User() {   		super();	}	/**	 * 重载父类的构造方法带2个参数	 * 	 * @param userName	 * @param password	 */	public User(String username, String password) {   		super();		this.username = username;		this.password = password;	}	/**	 * Set及Get方法	 * 	 * @return	 */	public int getId() {   		return id;	}	public void setId(int id) {   		this.id = id;	}	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=?,"				+ " price=?, goodsDesc=? , goodsTypeId = ? where id = ?";		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(														3)												.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 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(								21)						.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;		}		if (StringUtil.isEmpty(goodsDesc)) {   			JOptionPane.showMessageDialog(null, "货物描述不能为空!");			return;		}		String sex = "";		if (manJrb.isSelected()) {   			sex = "男";		} else if (femaleJrb.isSelected()) {   			sex = "女";		}		GoodsType goodsType = (GoodsType) this.goodsTypeNameJcb.getSelectedItem();		int goodsTypeId = goodsType.getId();		Goods goods = new Goods(Integer.parseInt(id), goodsName, goodsSupplier, sex, Double.parseDouble(price),				goodsDesc, goodsTypeId);		Connection conn = null;		try {   			conn = DbUtil.getCon();			int result = GoodsDao.updateGoods(conn, goods);			if (result == 1) {   				JOptionPane.showMessageDialog(null, "货物修改成功!");				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 arg0	 */	private void searchGoodsActionPerformed(ActionEvent arg0) {   		String goodsName = this.s_goodsNameTxt.getText();		String goodsSupplier = this.s_goodsSupplierTxt.getText();		GoodsType goodsType = (GoodsType) this.s_goodsTypeNameJcbTxt.getSelectedItem();		int goodsTypeId = goodsType.getId();		Goods goods = new Goods(goodsName, goodsSupplier, goodsTypeId);		this.fillGoodsTable(goods);	}	/**	 * 填充下拉列表菜单	 * 	 * @param type	 */	private void fillGoodsTypeNameItem(String type) {   		Connection conn = null;		GoodsType goodsType = null;		ResultSet rs = null;		try {   			conn = dbUtil.getCon();			rs = goodsTypeDao.listGoodsType(conn, new GoodsType());			if ("search".equals(type)) {   				goodsType = new GoodsType();				goodsType.setGoodsTypeName("请选择...");				goodsType.setId(-1);				this.s_goodsTypeNameJcbTxt.addItem(goodsType);			}			while (rs.next()) {   				goodsType = new GoodsType();				goodsType.setId(rs.getInt("id"));				goodsType.setGoodsTypeName(rs.getString("goodsTypeName"));				if ("search".equals(type)) {   					this.s_goodsTypeNameJcbTxt.addItem(goodsType);				} else if ("modify".equals(type)) {   					this.goodsTypeNameJcb.addItem(goodsType);				}			}		} catch (Exception e) {   			e.printStackTrace();		} finally {   			try {   				dbUtil.close(conn, rs);			} catch (SQLException e) {   				e.printStackTrace();			}		}	}	/**	 * 填充表单事件	 * 	 * @param goods	 */	private void fillGoodsTable(Goods goods) {   		DefaultTableModel dtm = (DefaultTableModel) goodsTable.getModel();		dtm.setRowCount(0);		Connection conn = null;		ResultSet rs = null;		try {   			conn = DbUtil.getCon();			rs = goodsDao.listGoods(conn, goods);			while (rs.next()) {   				Vector v = new Vector();				v.add(rs.getString("id"));				v.add(rs.getString("goodsName"));				v.add(rs.getString("goodsSupplier"));				v.add(rs.getString("sex"));				v.add(rs.getString("price"));				v.add(rs.getString("goodsDesc"));				v.add(rs.getString("goodsTypeName"));				dtm.addRow(v);			}		} catch (Exception e) {   			e.printStackTrace();		} finally {   			try {   				dbUtil.close(conn, rs);			} catch (SQLException e) {   				e.printStackTrace();			}		}	}	/**	 * 鼠标点击事件	 * 	 * @param arg0	 */	private void MouseClickGoodsTableActionPerformed(MouseEvent arg0) {   		int row = this.goodsTable.getSelectedRow();		this.goodsIdTxt.setText(goodsTable.getValueAt(row, 0) + "");		this.goodsNameTxt.setText(goodsTable.getValueAt(row, 1) + "");		this.goodsSupplierTxt.setText(goodsTable.getValueAt(row, 2) + "");		String sex = (String) goodsTable.getValueAt(row, 3);		if ("男".equals(sex)) {   			this.manJrb.setSelected(true);		} else if ("女".equals(sex)) {   			this.femaleJrb.setSelected(true);		}		this.priceTxt.setText(goodsTable.getValueAt(row, 4) + "");		this.goodsDescTxt.setText(goodsTable.getValueAt(row, 5) + "");		String goodsTypeName = (String) this.goodsTable.getValueAt(row, 6);		int n = this.goodsTypeNameJcb.getItemCount();		for (int i = 0; i < n; i++) {   			GoodsType item = (GoodsType) this.goodsTypeNameJcb.getItemAt(i);			if (item.getGoodsTypeName().equals(goodsTypeName)) {   				this.goodsTypeNameJcb.setSelectedIndex(i);			}		}	}	/**	 * 重置事件	 * 	 * @param arg0	 */	private void resetValueActionPerformed(ActionEvent arg0) {   		this.resetValue();	}	/**	 * 重置表单	 */	private void resetValue() {   		this.goodsIdTxt.setText("");		this.goodsNameTxt.setText("");		this.goodsSupplierTxt.setText("");		this.priceTxt.setText("");		this.goodsDescTxt.setText("");		this.manJrb.setSelected(true);		// 下拉菜单的重置		if (this.goodsTypeNameJcb.getItemCount() > 0) {   			this.goodsTypeNameJcb.setSelectedIndex(0);		}	}			/**	 * 运行程序	 */	public static void main(String[] args) {   		EventQueue.invokeLater(new Runnable() {   			public void run() {   				try {   					GoodsManagerInterFrm frame = new GoodsManagerInterFrm();					frame.setVisible(true);				} catch (Exception e) {   					e.printStackTrace();				}			}		});	}}

GoodsTypeAddInterFrm.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.SQLException;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.LayoutStyle.ComponentPlacement;import com.sjsq.dao.GoodsTypeDao;import com.sjsq.model.GoodsType;import com.sjsq.util.DbUtil;import com.sjsq.util.StringUtil;/** * goodsType视图层货物类别添加 *  * @author shuijianshiqing * */public class GoodsTypeAddInterFrm extends JInternalFrame {   	// 货物名字	private JTextField goodsTypeNameTxt;	private JTextArea goodsTypeDescTxt;	// 货物描述	private DbUtil dbUtil = new DbUtil();	private GoodsTypeDao goodsTypeDao = new GoodsTypeDao();		/**	 * 创建窗体	 */	public GoodsTypeAddInterFrm() {   		setClosable(true);		setIconifiable(true);		setTitle("货物类型添加");		setBounds(100, 100, 528, 392);		JLabel lblNewLabel = new JLabel("货物类型名称:");		lblNewLabel.setIcon(new ImageIcon(GoodsTypeAddInterFrm.class.getResource("/images/goods.png")));		JLabel label = new JLabel("货物类型描述:");		label.setIcon(new ImageIcon(GoodsTypeAddInterFrm.class.getResource("/images/goods.png")));		goodsTypeNameTxt = new JTextField();		goodsTypeNameTxt.setColumns(10);		goodsTypeDescTxt = new JTextArea();		JButton button = new JButton("添加");		button.addActionListener(new ActionListener() {   			public void actionPerformed(ActionEvent e) {   				goodsTypeAddActionPerformed(e);			}		});		button.setIcon(new ImageIcon(GoodsTypeAddInterFrm.class.getResource("/images/add.png")));		JButton button_1 = new JButton("重置");		button_1.addActionListener(new ActionListener() {   			public void actionPerformed(ActionEvent e) {   				goodsTypeResetValueActionPerformed(e);			}		});		button_1.setIcon(new ImageIcon(GoodsTypeAddInterFrm.class.getResource("/images/reset.png")));		GroupLayout groupLayout = new GroupLayout(getContentPane());		groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING)				.addGroup(groupLayout.createSequentialGroup().addGap(68)						.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)								.addGroup(groupLayout.createSequentialGroup().addComponent(label)										.addPreferredGap(ComponentPlacement.RELATED).addComponent(goodsTypeDescTxt))								.addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel)										.addPreferredGap(ComponentPlacement.RELATED).addComponent(goodsTypeNameTxt,												GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)))						.addContainerGap(144, Short.MAX_VALUE))				.addGroup(groupLayout.createSequentialGroup().addGap(91).addComponent(button).addGap(153)						.addComponent(button_1).addContainerGap(154, Short.MAX_VALUE)));		groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout				.createSequentialGroup().addGap(47)				.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(						goodsTypeNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,						GroupLayout.PREFERRED_SIZE))				.addGap(35)				.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label)						.addComponent(goodsTypeDescTxt, GroupLayout.PREFERRED_SIZE, 105, GroupLayout.PREFERRED_SIZE))				.addPreferredGap(ComponentPlacement.RELATED, 88, Short.MAX_VALUE)				.addGroup(						groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(button).addComponent(button_1))				.addGap(44)));		getContentPane().setLayout(groupLayout);	}	/**	 * 货物类型添加事件	 * 	 * @param e	 */	private void goodsTypeAddActionPerformed(ActionEvent e) {   		String goodsTypeName = this.goodsTypeNameTxt.getText();		String goodsTypeDesc = this.goodsTypeDescTxt.getText();		if (StringUtil.isEmpty(goodsTypeName)) {   			JOptionPane.showMessageDialog(null, "货物类型名称不能为空!");			return;		}		if (StringUtil.isEmpty(goodsTypeDesc)) {   			JOptionPane.showMessageDialog(null, "货物类型描述不能为空!");			return;		}		GoodsType goodsType = new GoodsType(goodsTypeName, goodsTypeDesc);		Connection conn = null;		try {   			conn = dbUtil.getCon();			int result = goodsTypeDao.addGoodsType(conn, goodsType);			if (result == 1) {   				JOptionPane.showMessageDialog(null, "货物类别添加成功!");				this.resetValue();// 添加成功,重置表单			} else {   				JOptionPane.showMessageDialog(null, "货物类别添加失败!");			}		} catch (Exception e1) {   			e1.printStackTrace();			JOptionPane.showMessageDialog(null, "货物类别添加失败!");		} finally {   			try {   				dbUtil.close(conn);			} catch (SQLException e1) {   				e1.printStackTrace();			}		}	}	/**	 * 重置事件	 * 	 * @param e	 */	private void goodsTypeResetValueActionPerformed(ActionEvent e) {   		this.resetValue();	}	/**	 * 重置表单	 */	private void resetValue() {   		this.goodsTypeNameTxt.setText("");		this.goodsTypeDescTxt.setText("");	}		/**	 * 运行程序	 */	public static void main(String[] args) {   		EventQueue.invokeLater(new Runnable() {   			public void run() {   				try {   					GoodsTypeAddInterFrm frame = new GoodsTypeAddInterFrm();					frame.setVisible(true);				} catch (Exception e) {   					e.printStackTrace();				}			}		});	}}

四、其他

1.其他系统实现

2.获取源码

请联系QQ:3079118617

3.侵权事宜

我也是网上找到的资源,好像是是叫Peter写的,感谢原作者的付出。若此文章侵犯您的权益,请通知我删除,谢谢。

4.鸡汤

最近一直在跑步,身体感觉棒棒哒。唯有读书与跑步不可辜负!

转载地址:http://boyl.baihongyu.com/

你可能感兴趣的文章
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>
MYSQL:基础——触发器
查看>>
Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>
mysqldump 导出数据库中每张表的前n条
查看>>
mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
查看>>
Mysqldump参数大全(参数来源于mysql5.5.19源码)
查看>>
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>