📄 ticketframe.java
字号:
package test;
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.JButton;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class TicketFrame extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JButton btnYes = new JButton();
JTextField txtTrainNo = new JTextField();
JRadioButton rabSeat = new JRadioButton();
JRadioButton rabBed = new JRadioButton();
ButtonGroup buttonGroup1 = new ButtonGroup();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
JTextField txtNum = new JTextField();
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(370, 380));
setTitle("");
jLabel1.setFont(new java.awt.Font("Dialog", Font.BOLD, 18));
jLabel1.setText("订购火车票");
jLabel1.setBounds(new Rectangle(140, 27, 101, 28));
jLabel2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
jLabel2.setText("乘车方式:");
jLabel2.setBounds(new Rectangle(71, 148, 87, 25));
jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
jLabel3.setText("订购数量:");
jLabel3.setBounds(new Rectangle(71, 204, 87, 25));
jLabel4.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
jLabel4.setText("火车车次:");
jLabel4.setBounds(new Rectangle(71, 92, 87, 25));
btnYes.setBounds(new Rectangle(149, 276, 73, 29));
btnYes.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
btnYes.setText("确定");
btnYes.addActionListener(new TicketFrame_btnYes_actionAdapter(this));
txtTrainNo.setText("");
txtTrainNo.setBounds(new Rectangle(169, 92, 100, 25));
rabSeat.setSelected(true);
rabSeat.setBounds(new Rectangle(168, 148, 27, 25));
rabBed.setBounds(new Rectangle(239, 148, 27, 25));
jLabel5.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
jLabel5.setText("硬座");
jLabel5.setBounds(new Rectangle(194, 148, 37, 25));
jLabel6.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14));
jLabel6.setText("硬卧");
jLabel6.setBounds(new Rectangle(269, 148, 33, 25));
txtNum.setBounds(new Rectangle(169, 204, 100, 25));
contentPane.add(jLabel1);
contentPane.add(btnYes);
contentPane.add(jLabel2);
contentPane.add(jLabel4);
contentPane.add(jLabel3);
contentPane.add(txtTrainNo);
contentPane.add(rabSeat);
contentPane.add(jLabel5);
contentPane.add(jLabel6);
contentPane.add(rabBed);
contentPane.add(txtNum);
buttonGroup1.add(rabSeat);
buttonGroup1.add(rabBed);
}
public void btnYes_actionPerformed(ActionEvent e) {//确定按钮(订购火车票)
String trainNo=this.txtTrainNo.getText().trim();
String num=this.txtNum.getText().trim();
String temp="";
if(this.rabSeat.isSelected()==true)
temp="硬座";
else
temp="硬卧";
if(trainNo.length()==0){//提示输入火车车次
javax.swing.JOptionPane.showMessageDialog(this,"请填写车次");
return;
}
if(num.length()==0){//提示输入订购数量
javax.swing.JOptionPane.showMessageDialog(this,"请填写订购数量");
return;
}
try { //如果顶票数量不是数字,提示。
Integer.parseInt(num);
} catch (NumberFormatException ex) {
javax.swing.JOptionPane.showMessageDialog(this,"订购数量必须为数字","错误",javax.swing.JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
return;
}
Model model=new Model();
model.setTrainNo(trainNo);
model.setTemp(temp);//看选择的是硬座还是硬卧
model.setBedNum(num);
model.setSeatNum(num);
model.setTempNum(num);
if(model.selecttrainNo()==true){
int bednum=Integer.parseInt(model.getBedNum());//获取用户输入车次的硬卧和硬座各有多少
int seatnum=Integer.parseInt(model.getSeatNum());
int num1=Integer.parseInt(num);//用户要求订购的数量
if(this.rabBed.isSelected()==true){//如果用户选择的乘车方式是硬卧,则硬卧剩余数量必须大于用户订购数量
if(num1>bednum){
javax.swing.JOptionPane.showMessageDialog(this,
"订购失败!原因:车票数量不足。", "错误",
javax.swing.JOptionPane.ERROR_MESSAGE);
return;
}
}
if(this.rabSeat.isSelected()==true){//如果用户选择的乘车方式是硬座,则硬卧剩余数量必须大于用户订购数量
if(num1>seatnum){
javax.swing.JOptionPane.showMessageDialog(this,
"订购失败!原因:车票数量不足。", "错误",
javax.swing.JOptionPane.ERROR_MESSAGE);
return;
}
}
model.update();//订购成功,修改该车次信息
if(this.rabSeat.isSelected()==true){//如果选择的是硬座
float tempprice=java.lang.Float.parseFloat(model.getSeatPrice()); //转为FLOAT型
float tempNum=java.lang.Float.parseFloat(num);//转为FLOAT型
float shopprice=tempprice*tempNum;
javax.swing.JOptionPane.showMessageDialog(this, "车票订购成功,请支付"+shopprice+"元!", "message",
javax.swing.JOptionPane.ERROR_MESSAGE);
}
if(this.rabBed.isSelected()==true){//如果选择的是硬卧
float tempprice=java.lang.Float.parseFloat( model.getBedPrice()); //转为FLOAT型
float tempNum=java.lang.Float.parseFloat(num);//转为FLOAT型
float shopprice=tempprice*tempNum;
javax.swing.JOptionPane.showMessageDialog(this, "车票订购成功,请支付"+shopprice+"元!", "message",
javax.swing.JOptionPane.ERROR_MESSAGE);
}
}
else //如果查出没有此车次,提示。
{
javax.swing.JOptionPane.showMessageDialog(this,"对不起,没有此车次","错误",javax.swing.JOptionPane.ERROR_MESSAGE);
return;
}
}
}
class TicketFrame_btnYes_actionAdapter implements ActionListener {
private TicketFrame adaptee;
TicketFrame_btnYes_actionAdapter(TicketFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnYes_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -