📄 plane_ticket.txt
字号:
package plane;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.String;
public class plane implements ActionListener{
JFrame f = null;
public plane()
{
f = new JFrame("机票预定窗口");
Container cP = f.getContentPane();
JPanel bP = new JPanel();
JButton b = new JButton("定票");
b.addActionListener(this);
bP.add(b);
b = new JButton("查询");
b.addActionListener(this);
bP.add(b);
b = new JButton("退出");
b.addActionListener(this);
bP.add(b);
bP.setBorder(BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.CYAN, 2), "选择操作:",
TitledBorder.CENTER, TitledBorder.TOP));
cP.add(bP, BorderLayout.CENTER);
f.setBounds(300,300,300,200);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowsClosing(WindowEvent e){
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if(cmd.equals("定票"))
{
new RegistSystem(f);
}
else if(cmd.equals("查询"))
{
new RegistSystem1(f);
}
else if(cmd.equals("退出"))
{
System.exit(0);
}
}
//Main method
public static void main(String[] args)
{
new plane();
}
}
/********************************** f 框中 选择 “定票” ***********************************/
class RegistSystem implements ActionListener
{
JDialog d;
JTextField tF1 = new JTextField();
JTextField tF2 = new JTextField();
JComboBox tF3 = new JComboBox();
JComboBox tF4 = new JComboBox();
JTextField tF5 = new JTextField();
JTextField tF6 = new JTextField();
RegistSystem(JFrame f)
{
d = new JDialog(f,"旅客信息录入",true);
Container dP = d.getContentPane();
dP.setLayout(new GridLayout(7,2));
dP.add(new JLabel("姓名:",SwingConstants.CENTER));
dP.add(tF1);
dP.add(new JLabel("联系电话:",SwingConstants.CENTER));
dP.add(tF2);
dP.add(new JLabel("出发城市:",SwingConstants.CENTER));
dP.add(tF3);
dP.add(new JLabel("到达城市:",SwingConstants.CENTER));
dP.add(tF4);
dP.add(new JLabel("出发日期:",SwingConstants.CENTER));
dP.add(tF5);
dP.add(new JLabel("定票张数:",SwingConstants.CENTER));
dP.add(tF6);
JButton b1 = new JButton("定票");
dP.add(b1);
JButton b2 = new JButton("取消");
dP.add(b2);
d.getRootPane().setDefaultButton(b1);
b1.addActionListener(this);
b2.addActionListener(this);
d.setBounds(220,200,400,400);
try ///////获取下拉式菜单内容!
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:MS", "test","123");
Statement stmt = con.createStatement();
String sqse = "select * from plane";
PreparedStatement ps = con.prepareStatement(sqse);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
String result =rs.getString(2);
String result2 =rs.getString(3);
int count = tF3.getItemCount();
int count2 = tF4.getItemCount();
boolean check_tF3 = true;
boolean check_tF4 = true;
//这里count获得的是Combox里面的字符串的个数,
//比如 |成都|
// |乐山|
//获得的是2,但是在使用getItemAt时的参数是从0 - (count-1)的。
for(int c=count; count>0; count--)
{
String x=(String) tF3.getItemAt(count-1);
if(x.equals(result))
{
check_tF3 = false;
break;
}
}
if(check_tF3)
{
tF3.addItem(result);
}
for(int c=count2; count2>0; count2--)
{
String x=(String) tF4.getItemAt(count2-1);
if(x.equals(result2))
{
check_tF4 = false;
break;
}
}
if(check_tF4)
{
tF4.addItem(result2);
}
}
stmt.close();
con.close();
}
catch(Exception ex)
{
System.out.println("获取下拉式菜单内容失败!");
}
d.show();
}
public void actionPerformed(ActionEvent e)
{
String cmd = e.getActionCommand();
if(cmd.equals("定票"))
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:MS","plane","123");
Connection kh_con = DriverManager.getConnection("jdbc:odbc:kh_MS","kh_msg","123");
Statement stmt = con.createStatement();
Statement kh_stmt = kh_con.createStatement();
String name = tF1.getText();
int tel = Integer.parseInt(tF2.getText());
String cityf = (String)tF3.getSelectedItem();
String cityt = (String)tF4.getSelectedItem();
String t = tF5.getText();
int n = Integer.parseInt(tF6.getText());
String sqse = "select * from plane WHERE cityF=? and cityT=?";
PreparedStatement ps = con.prepareStatement(sqse);
ps.setString(1,cityf);
ps.setString(2,cityt);
ResultSet rs = ps.executeQuery();
String squp = "UPDATE plane SET num=num-? WHERE cityF=? and cityT=?";
PreparedStatement pstmt = con.prepareStatement(squp);
pstmt.setInt(1,n);
pstmt.setString(2,cityf);
pstmt.setString(3,cityt);
pstmt.executeUpdate();
String fileName = "C:\\旅客信息表.txt";
while(rs.next())
{
String pno = rs.getString("pno");
String cf = rs.getString("cityF");
String ct = rs.getString("cityT");
String time = rs.getString("t");
int num = rs.getInt("num");
int pr = rs.getInt("price");
if (cf.equals(cityf) && ct.equals(cityt)) {
System.out.println("test!");
if (num >= n) {
JOptionPane.showMessageDialog(d, "定票成功!!!" + "\n所定机票信息为:\n"
+ "\n航班号" + pno
+ "\n飞机起飞地点: " + cf
+ "\n降落起飞地点: " + ct
+ "\n飞机起飞时间: " + time
+ "\n飞机剩余机票数: " + n
+ "\n该航班机票价格: " + pr
+ "\n\n");
try {
System.out.println("旅客信息表");
FileWriter writer = new FileWriter(fileName, true);
writer.write("姓名:" + name);
writer.write("\t联系电话:" + tel);
writer.write("\t出发城市:" + cityf);
writer.write("\t到达城市:" + cityt);
writer.write("\t出发时间:" + t);
writer.write("\t定票张数:" + n + "\n");
writer.close();
}
catch (IOException iox) {
System.out.println("写入有问题");
}
try {
String t_sqse = "select num from kh_msg";
ResultSet kh_rs = kh_stmt.executeQuery(t_sqse);
int i=1;
while (kh_rs.next()) {
i = kh_rs.getInt("num");
i = i + 1;
}
String t_squp = "insert into kh_msg values(" + i + ",'" +
name + "'," + tel + ",'" + pno + "','"
+ cf + "','" + ct + "','" + time + "'," + num + ")";
kh_stmt.executeUpdate(t_squp);
}
catch (Exception ex) {
System.out.println("ERROR");
}
}
else {
JOptionPane.showMessageDialog(d,"\n定票数目过大!\n"
+"超过剩余机票数!\n请重新输入!\n\n");
}
}
else {
JOptionPane.showMessageDialog(d, "\n无该航班!\n请重新输入!\n\n");
}
};
pstmt.close();
con.close();
}catch(Exception ex)
{
System.out.print("连接数据库错误!");
}
d.dispose();
}
else if(cmd.equals("取消"))
{d.dispose();}
}
}
/********************************** f 框中 选择 “查询” ***********************************/
class RegistSystem1 implements ActionListener
{
JDialog d;
JComboBox tF3 = new JComboBox();
JComboBox tF4 = new JComboBox();
JTextField tF5 = new JTextField();
JTextField tF6 = new JTextField();
RegistSystem1(JFrame f)
{
d = new JDialog(f,"输入相关查询信息:",true);
Container dP = d.getContentPane();
dP.setLayout(new GridLayout(5,2));
dP.add(new JLabel("出发城市:",SwingConstants.CENTER));
dP.add(tF3);
dP.add(new JLabel("到达城市:",SwingConstants.CENTER));
dP.add(tF4);
dP.add(new JLabel("出发日期:",SwingConstants.CENTER));
dP.add(tF5);
dP.add(new JLabel("定票张数:",SwingConstants.CENTER));
dP.add(tF6);
JButton b1 = new JButton("确定");
dP.add(b1);
JButton b2 = new JButton("取消");
dP.add(b2);
d.getRootPane().setDefaultButton(b1);
b1.addActionListener(this);
b2.addActionListener(this);
d.setBounds(250,220,320,250);
try ///////获取下拉式菜单内容!
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:MS", "test","123");
Statement stmt = con.createStatement();
String sqse = "select * from plane";
PreparedStatement ps = con.prepareStatement(sqse);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
String result =rs.getString(2);
String result2 =rs.getString(3);
int count = tF3.getItemCount();
int count2 = tF4.getItemCount();
boolean check_tF3 = true;
boolean check_tF4 = true;
//这里count获得的是Combox里面的字符串的个数,
//比如 |成都|
// |乐山|
//获得的是2,但是在使用getItemAt时的参数是从0 - (count-1)的。
for(int c=count; count>0; count--)
{
String x=(String) tF3.getItemAt(count-1);
if(x.equals(result))
{
check_tF3 = false;
break;
}
}
if(check_tF3)
{
tF3.addItem(result);
}
for(int c=count2; count2>0; count2--)
{
String x=(String) tF4.getItemAt(count2-1);
if(x.equals(result2))
{
check_tF4 = false;
break;
}
}
if(check_tF4)
{
tF4.addItem(result2);
}
}
stmt.close();
con.close();
}
catch(Exception ex)
{
System.out.println("获取下拉式菜单内容失败!");
}
d.show();
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if(cmd.equals("确定")){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection
("jdbc:odbc:MS","test","123");
String cityf = (String)tF3.getSelectedItem();
String cityt = (String)tF4.getSelectedItem();
String t = tF5.getText();
int num = Integer.parseInt(tF6.getText());
String sqse = "SELECT * FROM plane WHERE cityF=? and cityT=?";
PreparedStatement stmt = con.prepareStatement(sqse);
stmt.setString(1,cityf);
stmt.setString(2,cityt);
try
{
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
String pno = rs.getString("pno");
String cf = rs.getString("cityF");
String ct = rs.getString("cityT");
String time = rs.getString("t");
int n = rs.getInt("num");
int pr = rs.getInt("price");
if (cf.equals(cityf) && ct.equals(cityt)) {
if (n >= num) {
JOptionPane.showMessageDialog(d, "所查询的航班信息为:\n"
+"\n航班号: "+pno
+"\n飞机起飞地点: " + cf
+ "\n降落起飞地点: " + ct
+ "\n飞机起飞时间: " + time
+ "\n飞机剩余机票数: " + n
+ "\n该航班机票价格: " + pr
+"\n\n");
}
else {
JOptionPane.showMessageDialog(d, "\n定票数目过大!\n"
+"超过剩余机票数!\n请重新输入!\n\n");
}
}
else {
JOptionPane.showMessageDialog(d, "\n无该航班!\n请重新输入!\n\n");
}
};
}
catch(Exception ex)
{
System.out.println("Plane 表查询错误!");
}
stmt.close();
con.close();
}catch(Exception ex)
{
System.out.println("数据库连接错误!");
}
d.dispose();
}
else if(cmd.equals("取消"))
{d.dispose();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -