Eclipse+Java+Swing实现仓库管理系统

Java+Swing实现仓库管理系统

  • 一、系统介绍
  • 二、系统展示
    • 1.登录页面
    • 2.主页面
    • 3.货物类型添加页面
    • 4.货物类型添加成功提示页面
    • 5.货物类别修改页面
    • 6.货物类型修改成功提示
    • 7.货物类型修改成功显示页面
    • 8.货物添加页面
    • 9.货物添加成功提示页面
    • 10.货物修改页面
    • 11.货物修改成功提示页面
    • 12.货物修改成功显示页面
    • 13.货物删除提示页面
    • 14.退出系统提示页面
    • 15.联系我们页面
  • 三、系统实现
    • Goods.java
    • GoodsType.java
    • User.java
    • DbUtil.java
    • StringUtil.java
    • GoodsDao.java
    • UserDao.java
    • LoginFrm.java
    • MainFrm.java
    • GoodsAddInterFrm.java
    • GoodsManagerInterFrm.java
    • GoodsTypeAddInterFrm.java
  • 四、其他
    • 1.其他系统实现
    • 2.获取源码
    • 3.侵权事宜
    • 4.鸡汤

一、系统介绍

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

二、系统展示

1.登录页面

Eclipse+Java+Swing实现仓库管理系统_第1张图片

2.主页面

Eclipse+Java+Swing实现仓库管理系统_第2张图片

3.货物类型添加页面

Eclipse+Java+Swing实现仓库管理系统_第3张图片

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

Eclipse+Java+Swing实现仓库管理系统_第4张图片

5.货物类别修改页面

Eclipse+Java+Swing实现仓库管理系统_第5张图片

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

Eclipse+Java+Swing实现仓库管理系统_第6张图片

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

备注:修改之后的页面结果显示
Eclipse+Java+Swing实现仓库管理系统_第7张图片

8.货物添加页面

Eclipse+Java+Swing实现仓库管理系统_第8张图片

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

Eclipse+Java+Swing实现仓库管理系统_第9张图片

10.货物修改页面

Eclipse+Java+Swing实现仓库管理系统_第10张图片

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

Eclipse+Java+Swing实现仓库管理系统_第11张图片

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

Eclipse+Java+Swing实现仓库管理系统_第12张图片

13.货物删除提示页面

Eclipse+Java+Swing实现仓库管理系统_第13张图片

14.退出系统提示页面

Eclipse+Java+Swing实现仓库管理系统_第14张图片

15.联系我们页面

Eclipse+Java+Swing实现仓库管理系统_第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.其他系统实现

Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统

2.获取源码

请联系QQ:3079118617

3.侵权事宜

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

4.鸡汤

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

你可能感兴趣的:(Java,java,mysql,swing)