之前做了一个外卖点餐系统之后点此查看详情,这段时间在这个系统的基础上改了改帮几位同学实现了其他的几个系统,本文所述的列车车站信息管理系统就是其中之一。
一、数据库表及字段
1、管理员表
2、公交车表
3、顾客表
4、购买表
5、列车运行表
6、站点表
7、列车表
二、系统运行界面图(部分)
1、登陆界面
2、注册界面
3、用户的首界面
4、用户的购票界面
5、管理员首界面
6、列车运行管理
管理中心里面的功能基本都差不多,所以就列举上面几个,下面展示主要代码。
三、部分核心代码
1、登录模块的代码实现
private static final long serialVersionUID = 1L;
Common common=new Common();
static String Cusername;
static String Cpassword;
PreparedStatement ps=null;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel2;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jTextField;
private javax.swing.JToggleButton jToggleButton1;
public UserLogin() {
initComponents();
}
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextField = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jToggleButton1 = new javax.swing.JToggleButton();
jButton3 = new javax.swing.JButton();
jPasswordField1 = new javax.swing.JPasswordField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
jPanel2.setAutoscrolls(true);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel1.setText("账号:");
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel2.setText("密码:");
jTextField.setColumns(20);
jScrollPane1.setViewportView(jTextField);
jButton1.setText("登录");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
jButton1ActionPerformed(evt);
} catch (SQLException e) {
e.printStackTrace();
}
}
});
jButton2.setText("注册");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jToggleButton1.setText("退出");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
});
jButton3.setText("管理员登录");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jToggleButton1))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(162, 162, 162)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(19, 19, 19)
.addComponent(jButton1)
.addGap(85, 85, 85)
.addComponent(jButton2))
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jPasswordField1, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)))
.addContainerGap(171, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(69, 69, 69)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(51, 51, 51)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(36, 36, 36)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(41, 41, 41)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 118, Short.MAX_VALUE)
.addComponent(jToggleButton1))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton3)
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(113, 113, 113)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(290, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(44, 44, 44)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(441, Short.MAX_VALUE))
);
pack();
}
private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) throws SQLException {
Cusername=jTextField.getText();
Cpassword=jPasswordField1.getText();
String sql="select customerIdCard,customerPassword from customer where customerIdCard=? and customerPassword=? ";
common.connectDB();
ps=common.conn.prepareStatement(sql);
ps.setString(1, Cusername);
ps.setString(2, Cpassword);
ResultSet rs=ps.executeQuery();
if(rs.next()) {
UserLogin.this.setVisible(false);
Menu menu =new Menu();
menu.setVisible(true);
}
else {
JOptionPane.showMessageDialog(null,"密码或用户名错误!!!!");
}
common.connectClose();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
UserLogin.this.setVisible(false);
Register Register =new Register();
Register.setVisible(true);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
UserLogin.this.setVisible(false);
AdminLogin AdminLogin =new AdminLogin();
AdminLogin.setVisible(true);
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new UserLogin().setVisible(true);
}
});
}
2、用户购票代码实现
Common common=new Common();
float sum=0;
float shouldPrice=0;
String newDate;
public String num1;
public int num;
public int row;
PreparedStatement pstm=null;
Statement stmt = null;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JToggleButton jToggleButton1;
private javax.swing.JToggleButton jToggleButton2;
public Purchase() {
initComponents();
}
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
jToggleButton1 = new javax.swing.JToggleButton();
jToggleButton2 = new javax.swing.JToggleButton();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton2 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jTextField2 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
jPanel2.setAutoscrolls(true);
jToggleButton1.setText("退出");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
});
jToggleButton2.setText("返回");
jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton2ActionPerformed(evt);
}
});
jButton1.setText("搜索");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton3.setText("查询所有");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jButton2.setText("选择购票");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton4.setText("确认支付");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jLabel1.setText("总金额");
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1)
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(28, 28, 28)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton1))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(49, 49, 49)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 308, Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton4)
.addComponent(jButton3)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jToggleButton2)
.addGap(18, 18, 18)
.addComponent(jToggleButton1))))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1)
.addComponent(jButton3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton2)
.addComponent(jButton4)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jToggleButton1)
.addComponent(jToggleButton2))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(61, 61, 61)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(245, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(49, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(101, 101, 101))
);
pack();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String text=jTextField1.getText();
try {
String sql = "select trainId,run.stationId,(select stationName from station where station.stationId=run.stationId)as arriveStation,arriveTime,leaveTime,ticketNum,ticketPrice from run,station where station.stationId=run.stationId and( trainId='"+text+"' or stationName='"+text+"')";
common.connectDB();
pstm = common.conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
int count = 0;
while (rs.next()) {
count++;
}
rs = pstm.executeQuery();
Object[][] info = new Object[count][7];
count = 0;
while (rs.next()) {
info[count][0] = rs.getString("trainId");
info[count][1] = Integer.valueOf(rs.getInt("stationId"));
info[count][2] = rs.getString("arriveStation");
info[count][3] = rs.getString("arriveTime");
info[count][4] = rs.getString("leaveTime");
info[count][5] = Integer.valueOf(rs.getInt("ticketNum"));
info[count][6] = Float.valueOf(rs.getFloat("ticketPrice"));
count++;
}
String[] title = { "车次","站台编号", "到达站","到达时间","离开时间","余票数量","票价"};
this.jTable1 = new JTable(info, title);
this.jScrollPane1.getViewport().add(jTable1);
common.connectClose();
}catch (SQLException sqle) {
JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
row=jTable1.getSelectedRow();
shouldPrice=(Float) jTable1.getValueAt(row, 6);
num1=JOptionPane.showInputDialog("您选择的车次为:"+jTable1.getValueAt(row, 0)+"到达站为:"+jTable1.getValueAt(row, 2)+"到达时间为:"+jTable1.getValueAt(row,3)+"请输入购票数量:");
num=Integer.parseInt(num1);
sum=Float.parseFloat(num1)*shouldPrice;
jTextField2.setText(String.valueOf(sum));
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
common.connectDB();
String sql = "select trainId,stationId,(select stationName from station where station.stationId=run.stationId)as arriveStation,arriveTime,leaveTime,ticketNum,ticketPrice from run";
pstm = common.conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
int count = 0;
while (rs.next()) {
count++;
}
rs = pstm.executeQuery();
Object[][] info = new Object[count][7];
count = 0;
while (rs.next()) {
info[count][0] = rs.getString("trainId");
info[count][1] = Integer.valueOf(rs.getInt("stationId"));
info[count][2] = rs.getString("arriveStation");
info[count][3] = rs.getString("arriveTime");
info[count][4] = rs.getString("leaveTime");
info[count][5] = Integer.valueOf(rs.getInt("ticketNum"));
info[count][6] = Float.valueOf(rs.getFloat("ticketPrice"));
count++;
}
String[] title = { "车次","站台编号", "到达站","到达时间","离开时间","余票数量","票价"};
this.jTable1 = new JTable(info, title);
this.jScrollPane1.getViewport().add(jTable1);
common.connectClose();
}catch (SQLException sqle) {
JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
}
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
if(sum==0) {
JOptionPane.showMessageDialog(null, "请选择缴费项后再进行支付!!!");
return;
}
try {
common.connectDB();
stmt = common.conn.createStatement();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
newDate=simpleDateFormat.format(new Date());
System.out.println(newDate);
String sql3="insert into purchase(customerId,trainId,purchaseDate,beginStation,endStation,purchaseNum,purchasePrice)" + "values((select customerId from customer where customerIdCard='"+UserLogin.Cusername+"'),'"+jTable1.getValueAt(row,0)+"','"+newDate+"',2,'"+jTable1.getValueAt(row,1)+"','"+num1+"','"+sum+"')";
String sql2="update run set ticketNum=ticketNum-'"+num+"' where trainId='"+jTable1.getValueAt(row,0)+"' and stationId='"+jTable1.getValueAt(row,1)+"' and arriveTime='"+jTable1.getValueAt(row,3)+"'";
stmt.executeUpdate(sql3);
stmt.executeUpdate(sql2);
common.connectClose();
} catch (SQLException e) {
System.out.println(e);
JOptionPane.showMessageDialog(null, "数据源错误!!!");
return;
}
JOptionPane.showMessageDialog(null, "支付成功!祝您生活愉快!");
Purchase.this.setVisible(false);
Purchase Purchase =new Purchase();
Purchase.setVisible(true);
}
private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Purchase.this.setVisible(false);
Menu menu =new Menu();
menu.setVisible(true);
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Purchase().setVisible(true);
}
});
}
3、列车运行管理代码实现
Common common=new Common();
Statement stmt = null;
PreparedStatement pstm =null;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton10;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private JTable jTable1;
private javax.swing.JTextField jTextField1;
private javax.swing.JToggleButton jToggleButton1;
private javax.swing.JToggleButton jToggleButton2;
public RunManagement() {
initComponents();
}
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
jToggleButton1 = new javax.swing.JToggleButton();
jToggleButton2 = new javax.swing.JToggleButton();
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new JTable();
jButton8 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jButton10 = new javax.swing.JButton();
jTextField1 = new javax.swing.JTextField();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
jPanel2.setAutoscrolls(true);
jToggleButton1.setText("退出");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
});
jToggleButton2.setText("返回");
jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton2ActionPerformed(evt);
}
});
jButton1.setText("修改");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jButton8.setText("刷新");
jButton8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton8ActionPerformed(evt);
}
});
jButton9.setText("删除");
jButton9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton9ActionPerformed(evt);
}
});
jButton10.setText("查询");
jButton10.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton10ActionPerformed(evt);
}
});
jButton2.setText("增加");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addGap(0, 699, Short.MAX_VALUE)
.addComponent(jToggleButton2)
.addGap(18, 18, 18)
.addComponent(jToggleButton1))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jScrollPane1)
.addContainerGap())
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton8)
.addGap(54, 54, 54))))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton10)
.addComponent(jButton1)
.addComponent(jButton9)
.addComponent(jButton8)
.addComponent(jButton2))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jToggleButton1)
.addComponent(jToggleButton2))
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(282, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(359, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String No=JOptionPane.showInputDialog("请输入车次:");
if(!common.isNull(No)) return;
String quality=JOptionPane.showInputDialog("请输入站点编号:");
if(!common.isNull(quality)) return;
String Name=JOptionPane.showInputDialog("请输入新的到达时间:");
if(!common.isNull(Name)) return;
String price=JOptionPane.showInputDialog("请输入新的离开时间:");
if(!common.isNull(price)) return;
String beginTime=JOptionPane.showInputDialog("请输入新的余票数量:");
if(!common.isNull(beginTime)) return;
String endTime=JOptionPane.showInputDialog("请输入新的票价:");
if(!common.isNull(endTime)) return;
try {
common.connectDB();
String sql = "update run set arriveTime='"+Name+"',leaveTime='"+price+"',ticketNum='"+beginTime+"' ,ticketPrice='"+endTime+"' where trainId='"+No+"' and stationId='"+quality+"'";
stmt = common.conn.createStatement();
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "修改成功!");
common.connectClose();
}catch (SQLException e) {
e.printStackTrace();
}
finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (common.conn != null) {
try {
common.connectClose();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String No=JOptionPane.showInputDialog("请输入车次:");
if(!common.isNull(No)) return;
String quality=JOptionPane.showInputDialog("请输入站点编号:");
if(!common.isNull(quality)) return;
String Name=JOptionPane.showInputDialog("请输入新的到达时间:");
if(!common.isNull(Name)) return;
String price=JOptionPane.showInputDialog("请输入新的离开时间:");
if(!common.isNull(price)) return;
String beginTime=JOptionPane.showInputDialog("请输入新的余票数量:");
if(!common.isNull(beginTime)) return;
String endTime=JOptionPane.showInputDialog("请输入新的票价:");
if(!common.isNull(endTime)) return;
try {
common.connectDB();
String sql = "insert into run (trainId,stationId,arriveTime,leaveTime,ticketNum,ticketPrice)"+ "values('"+No+"','"+quality+"','"+Name+"','"+price+"','"+beginTime+"','"+endTime+"')";
stmt = common.conn.createStatement();
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "添加成功");
common.connectClose();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (common.conn != null) {
try {
common.connectClose();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {
try {
common.connectDB();
String sql = "select * from run";
pstm = common.conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
int count = 0;
while (rs.next()) {
count++;
}
rs = pstm.executeQuery();
Object[][] info = new Object[count][7];
count = 0;
while (rs.next()) {
info[count][0] = rs.getString("trainId");
info[count][1] = Integer.valueOf(rs.getInt("stationId"));
info[count][2] = rs.getString("arriveTime");
info[count][3] = rs.getString("leaveTime");
info[count][4] = Integer.valueOf(rs.getInt("ticketNum"));
info[count][5] = Float.valueOf(rs.getFloat("ticketPrice"));
count++;
}
String[] title = { "车次", "站点编号", "到达时间","离开时间","余票数量","票价" };
this.jTable1 = new JTable(info, title);
this.jScrollPane1.getViewport().add(jTable1);
common.connectClose();
}catch (SQLException sqle) {
JOptionPane.showMessageDialog(null, "数据源错误", "错误", JOptionPane.ERROR_MESSAGE);
}
}
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
String trainId=JOptionPane.showInputDialog("请输入车次:");
if(!common.isNull(trainId)) return;
String No=JOptionPane.showInputDialog("请输入站点编号:");
if(!common.isNull(No)) return;
try {
common.connectDB();
String sql = "delete from run where trainId='"+trainId+"' and stationId='"+No+"';";
stmt = common.conn.createStatement();
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "删除成功!");
common.connectClose();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (common.conn != null) {
try {
common.connectClose();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
String text=jTextField1.getText();
try {
common.connectDB();
String sql = "select * from run where trainId like '%"+text+"%' or stationId like '%"+text+"%'";
pstm = common.conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
int count = 0;
while (rs.next()) {
count++;
}
rs = pstm.executeQuery();
Object[][] info = new Object[count][7];
count = 0;
while (rs.next()) {
info[count][0] = rs.getString("trainId");
info[count][1] = Integer.valueOf(rs.getInt("stationId"));
info[count][2] = rs.getString("arriveTime");
info[count][3] = rs.getString("leaveTime");
info[count][4] = Integer.valueOf(rs.getInt("ticketNum"));
info[count][5] = Float.valueOf(rs.getFloat("ticketPrice"));
count++;
}
String[] title = { "车次", "站点编号", "到达时间","离开时间","余票数量","票价" };
this.jTable1 = new JTable(info, title);
this.jScrollPane1.getViewport().add(jTable1);
common.connectClose();
}catch (SQLException sqle) {
JOptionPane.showMessageDialog(null, "数据源错误", "错误", JOptionPane.ERROR_MESSAGE);
}
}
private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {
RunManagement.this.setVisible(false);
ManagementCenter ManagementCenter =new ManagementCenter();
ManagementCenter.setVisible(true);
}
private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RunManagement().setVisible(true);
}
});
}
因篇幅有限,只展示上述主要模块的代码。以上模块的代码基本覆盖了整个系统代码的实现方法,其他模块的基本按照上述代码写法复制粘贴即可,如果有需要完整源代码的可以v我(备注来源):ES-Lad或者自行下载:https://download.csdn.net/download/weixin_46671666/73819900