用Java编写一个图形界面的火车票售票程序,有三个窗口用来显示售票及余票信息,两个按钮,分别为 开始售票 和 退出系统 点击开始售票按钮 三个窗口同时进行售票 票售完时 弹出消息框 提示已售完 点击 退出系统按钮 系统退出
时间: 2024-02-18 17:01:28 浏览: 53
好的,我可以为您提供一些思路和代码示例。首先需要使用 Java 的 Swing 组件创建三个窗口和两个按钮。其中三个窗口分别用于显示余票信息和售票情况,可以使用 JLabel 组件实现。两个按钮可以使用 JButton 组件实现。
以下是示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TicketSellingSystem extends JFrame implements ActionListener {
JLabel lblTicketInfo1, lblTicketInfo2, lblTicketInfo3;
JButton btnStartSelling, btnExit;
public TicketSellingSystem() {
// 设置窗口标题和大小
setTitle("火车票售票程序");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建组件
lblTicketInfo1 = new JLabel("车次1:余票100张");
lblTicketInfo2 = new JLabel("车次2:余票200张");
lblTicketInfo3 = new JLabel("车次3:余票300张");
btnStartSelling = new JButton("开始售票");
btnExit = new JButton("退出系统");
// 添加组件
JPanel panel = new JPanel(new GridLayout(4, 1));
panel.add(lblTicketInfo1);
panel.add(lblTicketInfo2);
panel.add(lblTicketInfo3);
panel.add(btnStartSelling);
panel.add(btnExit);
add(panel);
// 注册按钮事件监听器
btnStartSelling.addActionListener(this);
btnExit.addActionListener(this);
}
// 实现 ActionListener 接口的 actionPerformed 方法
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnStartSelling) {
sellTickets();
} else if (e.getSource() == btnExit) {
System.exit(0);
}
}
// 售票方法
private void sellTickets() {
// 假设有足够的余票,直接将余票数减1
int remain1 = Integer.parseInt(lblTicketInfo1.getText().substring(5)) - 1;
int remain2 = Integer.parseInt(lblTicketInfo2.getText().substring(5)) - 1;
int remain3 = Integer.parseInt(lblTicketInfo3.getText().substring(5)) - 1;
lblTicketInfo1.setText("车次1:余票" + remain1 + "张");
lblTicketInfo2.setText("车次2:余票" + remain2 + "张");
lblTicketInfo3.setText("车次3:余票" + remain3 + "张");
// 判断是否售完
if (remain1 == 0 && remain2 == 0 && remain3 == 0) {
JOptionPane.showMessageDialog(this, "已售完", "提示", JOptionPane.INFORMATION_MESSAGE);
}
}
public static void main(String[] args) {
TicketSellingSystem frame = new TicketSellingSystem();
frame.setVisible(true);
}
}
```
在上述代码中,我们创建了一个名为 `TicketSellingSystem` 的类,继承自 `JFrame` 类,并实现了 `ActionListener` 接口。在类的构造方法中,我们创建了三个 `JLabel` 组件用于显示车次和余票信息,以及两个 `JButton` 组件用于开始售票和退出系统。我们将它们添加到一个 `JPanel` 中,并将该面板添加到窗口中。
我们还实现了 `ActionListener` 接口的 `actionPerformed` 方法,用于处理按钮点击事件。当点击开始售票按钮时,调用 `sellTickets` 方法进行售票。该方法假设有足够的余票,直接将余票数减1,并更新显示余票信息的标签。接着判断是否售完,如果售完则弹出消息框提示已售完。当点击退出系统按钮时,调用 `System.exit(0)` 方法退出程序。
这是一个简单的火车票售票程序示例,您可以根据实际需求进行修改和完善。
阅读全文