package com.zhku.curriculum.page;
import javax.annotation.Resource;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.JButton;
import com.zhku.curriculum.constant.PayConstant;
import com.zhku.curriculum.entity.Flight;
import com.zhku.curriculum.entity.dto.OrderDto;
import com.zhku.curriculum.entity.req.FlightReq;
import com.zhku.curriculum.service.FlightService;
import com.zhku.curriculum.service.OrderService;
import com.zhku.curriculum.utils.StringUtils;
import org.springframework.stereotype.Component;
@Component
public class Demand extends JFrame implements ActionListener {
private JTextField numberingField;
private JLabel numberingLabel;
private JTextField startField;
private JLabel startLabel;
private JTextField endField;
private JLabel endLabel;
private JButton searchButton;
private JTable flightInfoTable;
private JButton clearButton;
private JButton reserveButton;
private JButton myOrdersButton; // "我的订单"按钮
private JButton cancelReserveButton; // 退订按钮
private JButton login;
private JButton payButton;
@Resource
private FlightService FlightService;
@Resource
private OrderService orderService;
@Resource
private FlightBookingPage flightBookingPage;
{
// 创建时间输入框
setLayout(new BorderLayout());
numberingField = new JTextField();
numberingField.setColumns(5); // 设置输入框的列数
// 创建起点输入框
setLayout(new BorderLayout());
startField = new JTextField();
startField.setColumns(5); // 设置输入框的列数
// 创建终点输入框
setLayout(new BorderLayout());
endField = new JTextField();
endField.setColumns(5); // 设置输入框的列数
// 创建查询按钮
searchButton = new JButton("查询");
searchButton.addActionListener(this);
// 创建用于显示结果的表格
flightInfoTable = new JTable();
flightInfoTable.setModel(new DefaultTableModel(
new Object[][]{},
new String[]{"id", "航班编号", "起点", "终点", "等级", "价格"}
) {
@Override
public boolean isCellEditable(int row, int column) {
return false; // 不允许编辑任何单元格
}
});
JScrollPane scrollPane = new JScrollPane(flightInfoTable);
scrollPane.setPreferredSize(new Dimension(400, 300)); // 设置表格的大小
// 创建清空按钮
clearButton = new JButton("清空");
clearButton.addActionListener(this);
clearButton.setEnabled(false); // 初始状态下禁用清空按钮
// 创建预定按钮
reserveButton = new JButton("预定");
reserveButton.addActionListener(this);
// 创建"我的订单"按钮
myOrdersButton = new JButton("我的订单");
myOrdersButton.addActionListener(this);
// 创建"支付"按钮
payButton = new JButton("支付");
payButton.addActionListener(this);
payButton.setVisible(false);
// 创建"返回登录页"按钮
login = new JButton("返回登陆页");
login.addActionListener(this);
cancelReserveButton = new JButton("退订");
cancelReserveButton.addActionListener(this);
cancelReserveButton.setVisible(false);
// 创建顶部面板并添加时间输入框、查询按钮、清空按钮和"我的订单"按钮
JPanel topPanel = new JPanel();
topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS)); // 使用垂直方向的 BoxLayout
// 创建内部面板并添加查询按钮、清空按钮、预定按钮和"我的订单"按钮
JPanel buttonPanel = new JPanel();
buttonPanel.add(searchButton);
buttonPanel.add(clearButton);
buttonPanel.add(reserveButton);
buttonPanel.add(myOrdersButton);
buttonPanel.add(login);
buttonPanel.add(cancelReserveButton);
buttonPanel.add(payButton);
//将查询框放入同一panel
JPanel checkPanel = new JPanel();
JPanel numberingPanel = new JPanel();
JPanel startPanel = new JPanel();
JPanel endPanel = new JPanel();
numberingLabel = new JLabel("编号");
numberingPanel.add(numberingLabel);
numberingPanel.add(numberingField);
startLabel = new JLabel("起点");
startPanel.add(startLabel);
startPanel.add(startField);
endLabel = new JLabel("终点");
endPanel.add(endLabel);
endPanel.add(endField);
checkPanel.add(numberingPanel);
checkPanel.add(startPanel);
checkPanel.add(endPanel);
topPanel.add(Box.createVerticalGlue()); // 添加垂直弹簧,使组件居中对齐
topPanel.add(new JLabel("航班:"));
topPanel.add(Box.createVerticalStrut(10)); // 添加垂直间距
topPanel.add(checkPanel);
topPanel.add(Box.createVerticalStrut(10)); // 添加垂直间距
topPanel.add(buttonPanel);
topPanel.add(Box.createVerticalGlue()); // 添加垂直弹簧,使组件居中对齐
// 添加组件到窗口
add(topPanel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
//设置为单行选择
flightInfoTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
flightInfoTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//若选择的订单为未支付的订单则显示按钮
int selectedRow = flightInfoTable.getSelectedRow();
if (selectedRow != -1 && flightInfoTable.getModel().getColumnCount() >= 8 && flightInfoTable.getModel().getValueAt(selectedRow, 7).equals(PayConstant.UNPAID)) {
payButton.setVisible(true);
System.out.println("Aaaaaaaaaaaaaaaaaaaaaaaaaa");
} else {
payButton.setVisible(false);
System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
}
}
});
}
public void init() {
setTitle("航班查询");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//数据回显
displayAllFlights(new FlightReq());
// 设置窗口大小并显示
setSize(500, 300);
setLocationRelativeTo(null); // 居中显示
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == searchButton) {
payButton.setVisible(false);
reserveButton.setVisible(true);
cancelReserveButton.setVisible(false);
String queryNumber = numberingField.getText().trim();
String queryStart = startField.getText().trim();
String queryEnd = endField.getText().trim();
if (StringUtils.isEmpty(queryNumber) && StringUtils.isEmpty(queryStart) && StringUtils.isEmpty(queryEnd)) {
return;
}
FlightReq flightReq = new FlightReq(queryNumber, queryStart, queryEnd);
//查询回显
displayAllFlights(flightReq);
//设置清空按钮可点击
clearButton.setEnabled(true);
} else if (e.getSource() == clearButton) {
payButton.setVisible(false);
reserveButton.setVisible(true);
cance
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
springboot+GUI实现简单的机票管理系统 (593个子文件)
009c0fa97ba622e585ba7aab38941946e586f6 121B
02c9ec665cd722ef6bd7e21c865902a5c5e838 225B
032061ab4970ae07262e7ca3f85fb29f96e10a 200B
032e1d28203158b382cee2a9dcea83f3761ab7 163B
039135b4e47e2b18c484e83314c0fcee286244 79B
03f886edfcf632ee92fc17c01c22ed88c353ac 76B
04045ac58e2e0ed747d5395e2edb3011f116ae 93B
040fa3c9a4ca94283216fcc9c494fa6d215ea6 45B
04f3808b506f2d11d24135607f961977fd5faa 2KB
0536eb74343e6e1e0aa69e3aacbc51e015f97e 128B
05747bd6a8a31ea51d2b4f44e855c493f5086e 327B
05c8233d2ae2e5f120973738110e5f581a27e5 52B
05ebdcb849e8f70a323d46330f7750cf73fa22 3KB
07296a8f1541d26ab5d3f33f707bf7085624ae 45B
0756de9806a39cc4775d0a15fbe239cf84ebd5 647B
07e83ca62d73e1c84c3959d2916935d8cd895c 76B
084c46a078db6852c7c204471e31bb5f6a65e6 49B
096496d41c8cd4673e11e400a8ad734df734e3 86B
0b768c60fa227e1f47efdce85e60d4fa9e65e2 200B
0b86a39fcaf436180902544c968c3fa3bd2b08 79B
0bf10ccf7c29fbf926f1da5de652c663a1722e 52B
0bf7b7e54597e091fa49f97cc2a527cff5ce38 148B
0da6b1acf2dfd14f5922aec2661e25f11ba957 46B
0e317547fa89cfaf8b54f912702c66d1db6e2f 200B
0edc8f0b980c0550061157ebf6ab8fb2564d04 54B
0f7bb903b64ca77c0af2d1aad94377f865ba6b 482B
0ffacc25743314a59a14b0c99f3b6bf16b3f73 679B
106a346b87ecbf9240977670a59a8edf504bf5 45B
10a4fa3272a75be3b2e889e48c3371eb1d06f2 200B
12791aa8a693fb42cf8d9cb7deddd55c3c23e2 318B
138bc52a7e4c6e60f060ae949397b1206151a5 59B
15c81047fe8b629fec7f1344d2241d768f5158 86B
16061227857fb1d2cabfc62361a2286dcb88c3 93B
16422c94d199aa8f993e6db2ad76724ee4f8a4 125B
183f78a16e69f6e8d025d1e93e8851c56c4400 79B
184972d0ee8e0617a28ebe9e4423f92ef17d32 393B
185a0caf648108e142e2b7339feb9c178fb493 324B
19cfdaff4fa103da4c2d051305ffdb51521379 45B
1a420f27f63ec2c481f178f44c7dae058da24b 45B
1a513b1e04809ede6b60604d53255c0a032b64 92B
1bc45e3781192dad632d024f9f5ad49de5e616 85B
1c73dacacc6b055469efac97778adae5ea8a7f 200B
1dc52a88d2a4a109bb4bfac66a2cdc95a0a287 74B
1e35100585919d8c15bc8f2949ea2e7fab4408 76B
1e61ab9056e4caef0f6b5c7e425fae2d78f8ae 2KB
1f4a10bee55f4a4054d9153bba623a1d1912c8 47B
1f6aea74d42e75ef2c2a6ddcfe739cde6dea74 677B
1f86ee015c4308690f7fcac37e6594b30d62f7 3KB
2041afc00e3f0a2c90c73f95cc31c4afbbfb07 89B
2044ddad55cb6de0b30ef9acd979bfacedb258 200B
22d90753a76e4b82474d6d027a8d864d81cae0 253B
23049e04808dd3f0bb090379ef2418317d75d7 362B
238d79d7c0c6588d0bc8cfee6324d0780402ed 98B
23f834be7be269d3cb93e0e77b2c8172425a2e 80B
25f40d908153a7dbb70d70d63cb7b45b1bd7b9 130B
2604810222cdd8cda3e34fe9e1669c19486ace 79B
266e3ed328dd190f1556dfa8a3d22a9e36d92e 45B
27dfa3477b735d6b98064ec0c8b94b31635447 713B
2814e4e2050189ad483d4f73e17b104a1c8c1e 128B
28b0e37c7d206feb564310fdeec0927af4123a 55KB
293253eb8f259aaefa802d16ce4a9e2f0b13f4 156B
2ace72a1885673e712dbfc03eeb2db5111c0cc 2KB
2b5dceaf4bca6c8523fe4a3dd58e1af3214c57 3KB
2bd401b85fe1e2a8363ac9b84c107af615bc51 170B
2e2cd4578bcc678f691bd4af8a7ed2c0b55e02 172B
2f6439c42b8b8165b088ddcf98e0d762ff6158 1KB
2f9e43fe86b87d203a8cebf119bc78834a74d7 73B
30fbafbe3cd458a11eb871c316ed6bb597d41b 549B
3106fec3ffe8206c4839e2d57adaf9c55107bd 126B
31f10897ac2c8b4c4425673766d0b265041ff6 46B
335446ceb14441680c8c1781cb5519e5b563ac 77B
33c23e185e10b52701818bb8f0d2496c7386ed 46B
34f122eceb195dd4231b0c1374137dbe79a7b6 156B
35f8445936bc3b6b1bb0911c908ccf8a7f92ee 200B
36594b77725b5046d24131aa42c3ece2c74105 78B
383859a7af79b3d1493a35fb379aa951b1d394 83B
385d73ce2464416425bf7b8b82302a7e83f421 851B
38e27b17f10ba63acdf4443d68dbe6d434de00 576B
38fec7217f228527cfb5720f53a3320a3404b5 97B
3954066fce06a40509ed7a3181321e509c6f56 480B
3a3dd9314a5bdd35f16c2f2eab88483701c56e 64B
3a9ff57b2e55c4cf52d45b7c2549b59e7ca188 46B
3b5bc139f98a19db0a9d3878a4ed6223bb681d 523B
3c34c5f37729cd3e62755f60ad64be7f97d6f6 46B
3c57118fa63baebdbc96f8905545cefe41546a 3KB
3c72169b25da9d9af7d6130f0e17b4c3dace20 52B
3c8fa843589cb3c798e54a3813ebc4f4d9a9d6 191B
3d11239f2dd5ccfa05edfe146c27dc842edb7e 252B
3d380cfddeca1875230ffd18b2fb16321d49f3 449B
3dc29180956299f16355ddd9b92d86d1eda7ed 365B
3e7432fc2a042684d232d457ee0299905c34bd 403B
3eff4437e6000905993a99b8eed2f35933a409 209B
3f7b4b58f40b71d9dec0c107e952caeafa1a29 157B
407d8599517f87183457d9763c6f158fc04198 380B
425192254618ea6d72623fbc31a1e9c57383e8 79B
42bbcdae760649618728d2bac63fb27521c9e4 783B
43f70c2ab7d30732ea2d8381af834a1aba8617 3KB
45e9f481a262f5d6a9e89f1bd79b0b7438c200 3KB
4683f33747371068b5329e46b94acb385af897 2KB
4729039df4f61013744278e2f62ba678969b03 46B
共 593 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
Vegetable0421
- 粉丝: 43
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功