📄 ticketframe.java~41~
字号:
package trainticket;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author 秦川恒
* @version 1.0
*/
public class TicketFrame extends JFrame {
JPanel contentPane;
JLabel lblTitle = new JLabel();
JLabel lblTrainNo = new JLabel();
JLabel lblWay = new JLabel();
JLabel lblNum = new JLabel();
JButton btnOk = new JButton();
JTextField txtTrainNo = new JTextField();
JTextField tetNum = new JTextField();
ButtonGroup btngrpSelect = new ButtonGroup();
JRadioButton radSeat = new JRadioButton();
JRadioButton radBed = new JRadioButton();
public TicketFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("订购火车票");
lblTitle.setFont(new java.awt.Font("Dialog", Font.BOLD, 18));
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
lblTitle.setHorizontalTextPosition(SwingConstants.CENTER);
lblTitle.setText("订 购 火 车 票");
lblTitle.setBounds(new Rectangle(106, 15, 192, 42));
lblTrainNo.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
lblTrainNo.setHorizontalAlignment(SwingConstants.CENTER);
lblTrainNo.setHorizontalTextPosition(SwingConstants.CENTER);
lblTrainNo.setText("火车车次:");
lblTrainNo.setBounds(new Rectangle(65, 85, 81, 25));
lblWay.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
lblWay.setHorizontalAlignment(SwingConstants.CENTER);
lblWay.setHorizontalTextPosition(SwingConstants.CENTER);
lblWay.setText("乘车方式:");
lblWay.setBounds(new Rectangle(65, 126, 81, 25));
lblNum.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
lblNum.setHorizontalAlignment(SwingConstants.CENTER);
lblNum.setHorizontalTextPosition(SwingConstants.CENTER);
lblNum.setText("订购数量:");
lblNum.setBounds(new Rectangle(65, 164, 81, 25));
btnOk.setBounds(new Rectangle(154, 207, 103, 33));
btnOk.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
btnOk.setText("确 定");
btnOk.addActionListener(new TicketFrame_btnOk_actionAdapter(this));
txtTrainNo.setText("");
txtTrainNo.setBounds(new Rectangle(147, 82, 114, 26));
tetNum.setBounds(new Rectangle(146, 167, 114, 26));
radSeat.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
radSeat.setText("硬坐");
radSeat.setBounds(new Rectangle(149, 131, 56, 25));
radBed.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
radBed.setText("硬卧");
radBed.setBounds(new Rectangle(209, 132, 56, 25));
contentPane.add(lblTitle);
contentPane.add(lblTrainNo);
contentPane.add(lblWay);
contentPane.add(lblNum);
contentPane.add(btnOk);
contentPane.add(txtTrainNo);
contentPane.add(tetNum);
contentPane.add(radSeat);
contentPane.add(radBed);
btngrpSelect.add(radSeat);
btngrpSelect.add(radBed);
}
/**
* 此方法为定义数据库驱动
*/
public void Connectsql() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
}
public void btnOk_actionPerformed(ActionEvent e) {
this.Connectsql();
String No = txtTrainNo.getText();
String num = tetNum.getText();
if (No.equals("")) {
} else {
//连接数据库
try {
String url = "jdbc:odbc:AccpTest";
Connection con = DriverManager.getConnection(url);
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(
"select * from TrainTicket where TrainNo = '" + No +"'");
if (rs.next()) {
int numa = Integer.parseInt(rs.getString(2));
int numb = Integer.parseInt(rs.getString(3));
//判断硬卧是否有票,如果有就通知要支付多少钱
if (radSeat.isSelected()) {
if (Integer.parseInt(num) <= numa) {
JOptionPane.showMessageDialog(null,
"车票订购成功,请支付" +
Float.parseFloat(rs.getString(4)) *
Float.parseFloat(num) + "元!",
"提示消息",
JOptionPane.QUESTION_MESSAGE);
s.executeUpdate("update TrainTicket set seatNum = " + (numa -
Integer.parseInt(num)) +
"where TrainNo = '" + No +"'");
//改数据库记录
// try {
// PreparedStatement pstmt=con.prepareStatement
// ( "update TrainTicket set seatNum = " + (numa -
// Integer.parseInt(num)) +
// "where TrainNo = '" + No +"'") ;
//// System.out.print("dsafaaaaaaaa");
//
// }catch(Exception ex){
// ex.printStackTrace();
// }
} else {
JOptionPane.showMessageDialog(null,
"车票订购失败!原因:车票数量不足。",
"提示消息",
JOptionPane.QUESTION_MESSAGE);
}
//判断硬卧是否有票,如果有就通知要支付多少钱
} else if (radBed.isSelected()) {
if (Integer.parseInt(num) <= numb) {
JOptionPane.showMessageDialog(null,
"车票订购成功,请支付" +
Float.parseFloat(rs.getString(5)) *
Float.parseFloat(num) + "元!",
"提示消息",
JOptionPane.QUESTION_MESSAGE);
s.executeUpdate("update TrainTicket set seatNum = " + (numb -
Integer.parseInt(num)) +
"where TrainNo = '" + No + "'");
// try {
// PreparedStatement pstmt1 = con.
// prepareStatement(
// "update TrainTicket set seatNum = " + (numb -
// Integer.parseInt(num)) +
// "where TrainNo = '" + No + "'");
//// System.out.print("dsafaaaaaaaa");
// }catch(Exception ex){
// ex.printStackTrace();
// }
} else {
JOptionPane.showMessageDialog(null,
"车票订购失败!原因:车票数量不足。",
"提示消息",
JOptionPane.QUESTION_MESSAGE);
}
}
} else {
JOptionPane.showMessageDialog(null, "车次输入有误", "提示消息",
JOptionPane.QUESTION_MESSAGE);
}
rs.close();
s.close();
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
class TicketFrame_btnOk_actionAdapter implements ActionListener {
private TicketFrame adaptee;
TicketFrame_btnOk_actionAdapter(TicketFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnOk_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -