今天我们演示一个java swing组件开发的简单项目管理系统。
源码获取地址【当牛作码-最专业的源代码分享网站】:http://www.xiaoniucr.com/project/view/14.html
项目介绍:
本系统主要使用eclipse+jdk1.7开发,使用swing图形化组件,在配合mysql数据库,实现数据的增删改查。
核心代码:
1.数据库链接代码
package com.gzskco.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbUtil {
private String dbUrl="jdbc:mysql://localhost:3306/db_company";
private String dbUserName="root";
private String dbPassword="root";
private String jdbcName="com.mysql.jdbc.Driver";
/**
* 获取数据库连接
* @return
* @throws Exception
*/
public Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return con;
}
/**
* 关闭数据库连接
* @param con
* @throws Exception
*/
public void closeCon(Connection con) throws Exception{
if(con!=null){
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
2.UI层部分代码
/*
* BiaoAddInterFrm.java
*
* Created on __DATE__, __TIME__
*/
package com.gzskco.view;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import com.gzskco.dao.BiaoDao;
import com.gzskco.dao.BiaoTypeDao;
import com.gzskco.dao.SkEngineeringDao;
import com.gzskco.model.Biao;
import com.gzskco.model.BiaoType;
import com.gzskco.model.SkEngineering;
import com.gzskco.util.DbUtil;
import com.gzskco.util.StringUtil;
/**
*
* @author __USER__
*/
@SuppressWarnings("serial")
public class BiaoAddInterFrm extends javax.swing.JInternalFrame {
DbUtil dbUtil = new DbUtil();
BiaoTypeDao biaoTypeDao = new BiaoTypeDao();
SkEngineeringDao skEngineeringDao = new SkEngineeringDao();
BiaoDao biaoDao = new BiaoDao();
/** Creates new form BiaoAddInterFrm */
public BiaoAddInterFrm() {
initComponents();
//设置居中偏上
int windowWidth = this.getWidth(); //获得窗口宽
int windowHeight = this.getHeight(); //获得窗口高
Toolkit kit = Toolkit.getDefaultToolkit(); //定义工具包
Dimension screenSize = kit.getScreenSize(); //获取屏幕的尺寸
int screenWidth = screenSize.width; //获取屏幕的宽
int screenHeight = screenSize.height; //获取屏幕的高
this.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 3
- windowHeight / 2);//
this.fillBiaoType();
this.fillEngineering();
if (this.jcb_BiaoType.getItemCount() > 0) {
this.jcb_BiaoType.setSelectedIndex(1);
}
if (this.jcb_Engineering.getItemCount() > 0) {
this.jcb_Engineering.setSelectedIndex(0);
}
}
private void fillBiaoType() {
Connection con = null;
BiaoType biaoType = null;
try {
con = dbUtil.getCon();
ResultSet rs = biaoTypeDao.biaoTypeList(con, new BiaoType());
while (rs.next()) {
biaoType = new BiaoType();
biaoType.setId(rs.getInt("id"));
biaoType.setBiaoTypeName(rs.getString("biaoTypeName"));
this.jcb_BiaoType.addItem(biaoType);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void fillEngineering() {
Connection con = null;
SkEngineering skEngineering = null;
try {
con = dbUtil.getCon();
ResultSet rs = skEngineeringDao.skEngineeringList(con,
new SkEngineering());
while (rs.next()) {
skEngineering = new SkEngineering();
skEngineering.setId(rs.getInt("id"));
skEngineering.setEngineeringName(rs
.getString("engineeringName"));
this.jcb_Engineering.addItem(skEngineering);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
//
private void initComponents() {
jLabel2 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jcb_BiaoType = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
planTxt = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
finishTxt = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
acceptanceTxt = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel14 = new javax.swing.JLabel();
jcb_Engineering = new javax.swing.JComboBox();
setClosable(true);
setIconifiable(true);
setTitle("\u6dfb\u52a0\u8868\u53ca\u8bbe\u5907");
jLabel2.setText("\u9879\u76ee\u540d\u79f0");
jLabel4.setText("\u89c4\u683c\u578b\u53f7");
jLabel5.setText("\u8ba1\u5212\u6570\u91cf");
jLabel6.setText("\u5b89\u88c5\u6570\u91cf");
jLabel8.setText("\u9a8c\u6536\u6570\u91cf");
jButton1.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\项目\\logo\\add.png")); // NOI18N
jButton1.setText("\u6dfb\u52a0");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\项目\\logo\\reset.png")); // NOI18N
jButton2.setText("\u91cd\u7f6e");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel14.setText("\u6ce8\uff1a\u8ba1\u5212\u6570\u91cf\u4e0d\u80fd\u4e3a\u7a7a");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(44, 44, 44)
.addComponent(jButton2))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(planTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(finishTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(acceptanceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jcb_Engineering, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jcb_BiaoType, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(26, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jcb_Engineering, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jcb_BiaoType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(planTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(finishTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(jLabel8)
.addComponent(acceptanceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(56, 56, 56)
.addComponent(jLabel14)
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(26, Short.MAX_VALUE))
);
pack();
}//
//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String plan = this.planTxt.getText();
String finish = this.finishTxt.getText();
String acceptance = this.acceptanceTxt.getText();
int engId = 0;
if (StringUtil.isEmpty(plan)) {
JOptionPane.showMessageDialog(null, "计划数量不能为空!");
return;
}
if (StringUtil.isEmpty(finish)) {
finish = "0";
}
if (StringUtil.isEmpty(acceptance)) {
acceptance = "0";
}
int lack = Integer.parseInt(plan) - Integer.parseInt(finish);
BiaoType biaoType = (BiaoType) this.jcb_BiaoType.getSelectedItem();
int biaoId = biaoType.getId();
//必须先添加项目才能实现这个表
if (this.jcb_Engineering.getItemCount() > 0) {
SkEngineering skEngineering = (SkEngineering) this.jcb_Engineering
.getSelectedItem();
engId = skEngineering.getId();
} else {
JOptionPane.showMessageDialog(null, "计划添加,请先添加项目");
return;
}
Biao biao = new Biao(engId, biaoId, Integer.parseInt(plan), Integer
.parseInt(finish), lack, Integer.parseInt(acceptance));
Connection con = null;
try {
con = dbUtil.getCon();
int addNum = biaoDao.biaoAdd(con, biao);
if (addNum == 1) {
JOptionPane.showMessageDialog(null, "计划添加成功!");
this.resetValue();
} else {
JOptionPane.showMessageDialog(null, "计划添加失败!");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "计划添加失败!");
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void resetValue() {
if (this.jcb_BiaoType.getItemCount() > 0) {
this.jcb_BiaoType.setSelectedIndex(1);
}
this.planTxt.setText("");
this.finishTxt.setText("");
this.acceptanceTxt.setText("");
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if (this.jcb_Engineering.getItemCount() > 0) {
this.jcb_Engineering.setSelectedIndex(0);
}
this.resetValue();
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JTextField acceptanceTxt;
private javax.swing.JTextField finishTxt;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel8;
private javax.swing.JComboBox jcb_BiaoType;
private javax.swing.JComboBox jcb_Engineering;
private javax.swing.JTextField planTxt;
// End of variables declaration//GEN-END:variables
}
3.持久化层实例代码
package com.gzskco.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.gzskco.model.Biao;
import com.gzskco.model.SkEngineering;
import com.gzskco.util.StringUtil;
public class BiaoDao {
public int biaoAdd(Connection con,Biao biao)throws Exception {
String sql="insert into t_total values(null,?,?,?,?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, biao.getEngId());
pstmt.setInt(2, biao.getBiaoId());
pstmt.setInt(3, biao.getPlan());
pstmt.setInt(4, biao.getFinish());
pstmt.setInt(5, biao.getLack());
pstmt.setInt(6, biao.getAcceptance());
return pstmt.executeUpdate();
}
public ResultSet biaoList(Connection con,Biao biao)throws Exception {
StringBuffer sb=new StringBuffer("select * from t_total t,t_biaoType bt ,t_engineering et where t.biaoId=bt.id and t.engId=et.id");
if(StringUtil.isNotEmpty(biao.getEngineeringName())){
sb.append(" and et.engineeringName like '%"+biao.getEngineeringName()+"%'");
}
if (biao.getEngId()!=-1) {
sb.append(" and t.engId="+biao.getEngId());
}
if (biao.getBiaoId()!=-1) {
sb.append(" and t.biaoId="+biao.getBiaoId());
}
PreparedStatement pstmt = con.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
public int BiaoDelete(Connection con,String id) throws Exception{
String sql="delete from t_total where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
public int BiaoModify(Connection con,Biao biao) throws Exception {
String sql="update t_total set engId=?,biaoId=?,plan=?,finish=?,lack=?,acceptance=? where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, biao.getEngId());
pstmt.setInt(2, biao.getBiaoId());
pstmt.setInt(3, biao.getPlan());
pstmt.setInt(4, biao.getFinish());
pstmt.setInt(5, biao.getLack());
pstmt.setInt(6, biao.getAcceptance());
pstmt.setInt(7, biao.getId());
return pstmt.executeUpdate();
}
public boolean getBiaoByEngId(Connection con,String engId) throws Exception{
String sql="select * from t_total where engId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, engId);
ResultSet rs=pstmt.executeQuery();
return rs.next();
}
}
4.实体类部分代码
package com.gzskco.model;
public class Biao {
private int id;
private int engId=-1;
private int biaoId=-1;
private int plan;
private int finish;
private int lack;
private int acceptance;
private String EngineeringName;
public Biao() {
super();
}
public Biao(int engId, int biaoId, int plan, int finish,int lack, int acceptance)
{
super();
this.engId = engId;
this.biaoId = biaoId;
this.plan = plan;
this.finish = finish;
this.lack = lack;
this.acceptance = acceptance;
}
//查询使用
public Biao(int biaoId, String engineeringName) {
super();
this.biaoId = biaoId;
this.EngineeringName = engineeringName;
}
public Biao(int id, int engId, int biaoId, int plan, int finish, int lack,
int acceptance) {
super();
this.id = id;
this.engId = engId;
this.biaoId = biaoId;
this.plan = plan;
this.finish = finish;
this.lack = lack;
this.acceptance = acceptance;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getEngId() {
return engId;
}
public void setEngId(int engId) {
this.engId = engId;
}
public int getBiaoId() {
return biaoId;
}
public void setBiaoId(int biaoId) {
this.biaoId = biaoId;
}
public int getPlan() {
return plan;
}
public void setPlan(int plan) {
this.plan = plan;
}
public int getFinish() {
return finish;
}
public void setFinish(int finish) {
this.finish = finish;
}
public int getLack() {
return lack;
}
public void setLack(int lack) {
this.lack = lack;
}
public int getAcceptance() {
return acceptance;
}
public void setAcceptance(int acceptance) {
this.acceptance = acceptance;
}
public String getEngineeringName() {
return EngineeringName;
}
public void setEngineeringName(String engineeringName) {
EngineeringName = engineeringName;
}
}
运行截图:
源码获取地址【当牛作码-最专业的源代码分享网站】:http://www.xiaoniucr.com/project/view/14.html