⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkflightdlg.java

📁 关于飞机航班的项目
💻 JAVA
字号:
package flight;

import java.awt.*;
import java.util.*;

import javax.swing.*;
import java.awt.Rectangle;
import java.awt.Font;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

public class CheckFlightDlg extends JDialog {
    JPanel panel1 = new JPanel();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTable jTable1 = new JTable();
    JLabel lblBeginCity = new JLabel();
    JLabel lblArriveCity = new JLabel();
    JComboBox cboBeginCity = new JComboBox();
    JComboBox cboArriveCity = new JComboBox();
    JButton btnQuery = new JButton();
    JLabel lblBook = new JLabel();
    JTextField txtBook = new JTextField();
    JButton btnBook = new JButton();
    int selectedFlightID = 0;
    int selectedTicketID = 0;
    public CheckFlightDlg(Frame owner, String title, boolean modal) {
        super(owner, title, modal);
        try {
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            jbInit();
            pack();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    public CheckFlightDlg() {
        this(new Frame(), "CheckFlightDlg", false);
    }

    private void jbInit() throws Exception {
        panel1.setLayout(null);
        this.setResizable(false);
        jScrollPane1.setAutoscrolls(true);
        jScrollPane1.setBounds(new Rectangle(25, 63, 351, 305));
        lblBeginCity.setFont(new java.awt.Font("宋体", Font.PLAIN, 15));
        lblBeginCity.setText("起点城市:");
        lblBeginCity.setBounds(new Rectangle(25, 18, 78, 30));
        lblArriveCity.setFont(new java.awt.Font("宋体", Font.PLAIN, 15));
        lblArriveCity.setText("终点城市:");
        lblArriveCity.setBounds(new Rectangle(180, 18, 78, 30));
        cboBeginCity.setBounds(new Rectangle(99, 18, 72, 29));
        cboBeginCity.addItemListener(new
                                     CheckFlightDlg_cboBeginCity_itemAdapter(this));
        cboArriveCity.setBounds(new Rectangle(252, 18, 72, 29));
        cboArriveCity.addItemListener(new
                                      CheckFlightDlg_cboArriveCity_itemAdapter(this));
        btnQuery.setBounds(new Rectangle(332, 18, 58, 28));
        btnQuery.setEnabled(false);
        btnQuery.setText("查询");
        btnQuery.addActionListener(new CheckFlightDlg_btnQuery_actionAdapter(this));
        lblBook.setFont(new java.awt.Font("宋体", Font.PLAIN, 15));
        lblBook.setText("订票数量:");
        lblBook.setBounds(new Rectangle(25, 380, 84, 31));
        txtBook.setBounds(new Rectangle(114, 380, 107, 30));
        btnBook.setBounds(new Rectangle(297, 380, 78, 30));
        btnBook.setEnabled(false);
        btnBook.setText("订票");
        btnBook.addActionListener(new CheckFlightDlg_btnBook_actionAdapter(this));
        jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jTable1.addMouseListener(new CheckFlightDlg_jTable1_mouseAdapter(this));
        getContentPane().add(panel1);
        panel1.add(jScrollPane1);
        panel1.add(lblBeginCity);
        panel1.add(lblArriveCity);
        panel1.add(cboBeginCity);
        panel1.add(cboArriveCity);
        panel1.add(btnQuery);
        panel1.add(lblBook);
        panel1.add(txtBook);
        panel1.add(btnBook);
        jScrollPane1.getViewport().add(jTable1);
        this.setPreferredSize(new Dimension(410, 450));
        addBeginCityName();
        addArriveCityName();
    }

    private void addBeginCityName() {
        Vector name = MainFrame.connObj.getCityName("beginCity");
        cboBeginCity.addItem("");
        for (int i = 0; i < name.size(); i++) {
            cboBeginCity.addItem(name.elementAt(i));
        }
    }

    private void addArriveCityName() {
        Vector name = MainFrame.connObj.getCityName("endCity");
        cboArriveCity.addItem("");
        for (int i = 0; i < name.size(); i++) {
            cboArriveCity.addItem(name.elementAt(i));
        }
    }

    private void queryEnable() {
        boolean begin = false;
        boolean arrive = false;
        if (cboArriveCity.getSelectedItem() != null) {
            if (cboArriveCity.getSelectedIndex() != 0) {
                arrive = true;
            }
        }
        if (cboBeginCity.getSelectedItem() != null) {
            if (cboBeginCity.getSelectedIndex() != 0) {
                begin = true;
            }
        }
        if (begin == true && arrive == true) {
            btnQuery.setEnabled(true);
        } else {
            btnQuery.setEnabled(false);
        }
    }

    public static boolean strCheck(String str) {
        char[] ch = str.toCharArray();
        boolean flag = true;

        for (int i = 0; i < ch.length; i++) {
            if (!Character.isDigit(ch[i])) {
                flag = false;
                break;
            }
        }

        return flag;
    }

    public void cboBeginCity_itemStateChanged(ItemEvent e) {
        queryEnable();
        btnBook.setEnabled(false);
    }

    public void cboArriveCity_itemStateChanged(ItemEvent e) {
        queryEnable();
        btnBook.setEnabled(false);
    }

    public void btnQuery_actionPerformed(ActionEvent e) {
        String beginCity = cboBeginCity.getSelectedItem().toString();
        String endCity = cboArriveCity.getSelectedItem().toString();

        if (beginCity.equals(endCity)) {
            JOptionPane.showMessageDialog(this, "不能选择相同城市!");
            return;
        }
        MainFrame.connObj.showFlightTable(beginCity, endCity, jTable1);
    }

    public void jTable1_mouseClicked(MouseEvent e) {
        selectedFlightID = Integer.parseInt(jTable1.getValueAt(jTable1.getSelectedRow(),
                0).toString());
        selectedTicketID = MainFrame.connObj.getTicketID(selectedFlightID);
        btnBook.setEnabled(true);
    }

    public void btnBook_actionPerformed(ActionEvent e) {
        String num = txtBook.getText().trim();
        String identify = "";
        if (num.equals("")) {
            JOptionPane.showMessageDialog(this, "请输入订票数量!");
            return;
        }
        if (strCheck(num)) {
            identify = JOptionPane.showInputDialog(this,"请输入身份证号码:");
            if (identify.equals("")){
                JOptionPane.showMessageDialog(this,"身份证号码不能为空!");
                return;
            }else{
                if (JOptionPane.showConfirmDialog(this,
                                                  "是否预定编号为" + selectedFlightID +
                                                  "的机票" + num + "张?") ==
                    JOptionPane.YES_OPTION) {
                    if(MainFrame.connObj.buyTicket(selectedFlightID,
                                                Integer.parseInt(num), identify)) {
                        JOptionPane.showMessageDialog(this,"订票成功!");
                    }else {
                        JOptionPane.showMessageDialog(this,"订票失败!");
                    }
                }
            }
        } else {
            JOptionPane.showMessageDialog(this, "请不要输入非法数据!");
            return;
        }
    }
}


class CheckFlightDlg_btnBook_actionAdapter implements ActionListener {
    private CheckFlightDlg adaptee;
    CheckFlightDlg_btnBook_actionAdapter(CheckFlightDlg adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btnBook_actionPerformed(e);
    }
}


class CheckFlightDlg_jTable1_mouseAdapter extends MouseAdapter {
    private CheckFlightDlg adaptee;
    CheckFlightDlg_jTable1_mouseAdapter(CheckFlightDlg adaptee) {
        this.adaptee = adaptee;
    }

    public void mouseClicked(MouseEvent e) {
        adaptee.jTable1_mouseClicked(e);
    }
}


class CheckFlightDlg_btnQuery_actionAdapter implements ActionListener {
    private CheckFlightDlg adaptee;
    CheckFlightDlg_btnQuery_actionAdapter(CheckFlightDlg adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.btnQuery_actionPerformed(e);
    }
}


class CheckFlightDlg_cboBeginCity_itemAdapter implements ItemListener {
    private CheckFlightDlg adaptee;
    CheckFlightDlg_cboBeginCity_itemAdapter(CheckFlightDlg adaptee) {
        this.adaptee = adaptee;
    }

    public void itemStateChanged(ItemEvent e) {
        adaptee.cboBeginCity_itemStateChanged(e);
    }
}


class CheckFlightDlg_cboArriveCity_itemAdapter implements ItemListener {
    private CheckFlightDlg adaptee;
    CheckFlightDlg_cboArriveCity_itemAdapter(CheckFlightDlg adaptee) {
        this.adaptee = adaptee;
    }

    public void itemStateChanged(ItemEvent e) {
        adaptee.cboArriveCity_itemStateChanged(e);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -