基于java实现的具有页面跳转功能的电影购票系统
时间: 2024-03-07 18:49:55 浏览: 110
基于Java的电影购票系统
一个基于 Java 实现的具有页面跳转功能的电影购票系统可以分为以下几个部分:
1. 登录界面:用户需要输入用户名和密码才能进入系统。
2. 电影列表页面:显示所有正在上映的电影,用户可以选择电影并查看详细信息。
3. 电影详细信息页面:显示电影的详细信息,包括电影名称、导演、演员、剧情简介、上映时间等。
4. 选座页面:用户选择电影场次和座位,可以选择多个座位。
5. 确认订单页面:显示用户选择的电影、场次、座位信息,以及总价。
6. 支付页面:用户输入支付信息(如信用卡号、有效期、安全码等),完成支付。
7. 订单状态页面:显示订单状态(已支付、未支付、已退款等),以及电影票的二维码。
在实现页面跳转功能时,可以使用 Java Swing 中的卡片布局(CardLayout),将不同的页面作为卡片添加到一个容器中。用户在点击不同的按钮时,可以通过切换卡片来实现页面的跳转。
以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MovieTicketSystem extends JFrame implements ActionListener {
private CardLayout cardLayout;
private JPanel cardPanel;
private JButton loginButton, movieListButton, selectSeatButton, confirmOrderButton, payButton;
private JLabel titleLabel;
public MovieTicketSystem() {
// 创建卡片布局和卡片容器
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
// 创建登录界面卡片
JPanel loginPanel = new JPanel();
JLabel usernameLabel = new JLabel("Username:");
JTextField usernameField = new JTextField(20);
JLabel passwordLabel = new JLabel("Password:");
JPasswordField passwordField = new JPasswordField(20);
loginButton = new JButton("Login");
loginButton.addActionListener(this);
loginPanel.add(usernameLabel);
loginPanel.add(usernameField);
loginPanel.add(passwordLabel);
loginPanel.add(passwordField);
loginPanel.add(loginButton);
cardPanel.add(loginPanel, "login");
// 创建电影列表页面卡片
JPanel movieListPanel = new JPanel();
movieListButton = new JButton("Select Movie");
movieListButton.addActionListener(this);
movieListPanel.add(new JLabel("Movie List"));
movieListPanel.add(movieListButton);
cardPanel.add(movieListPanel, "movieList");
// 创建选座页面卡片
JPanel selectSeatPanel = new JPanel();
selectSeatButton = new JButton("Select Seat");
selectSeatButton.addActionListener(this);
selectSeatPanel.add(new JLabel("Select Seat"));
selectSeatPanel.add(selectSeatButton);
cardPanel.add(selectSeatPanel, "selectSeat");
// 创建确认订单页面卡片
JPanel confirmOrderPanel = new JPanel();
confirmOrderButton = new JButton("Confirm Order");
confirmOrderButton.addActionListener(this);
confirmOrderPanel.add(new JLabel("Confirm Order"));
confirmOrderPanel.add(confirmOrderButton);
cardPanel.add(confirmOrderPanel, "confirmOrder");
// 创建支付页面卡片
JPanel payPanel = new JPanel();
payButton = new JButton("Pay");
payButton.addActionListener(this);
payPanel.add(new JLabel("Pay"));
payPanel.add(payButton);
cardPanel.add(payPanel, "pay");
// 添加卡片容器到窗口
add(cardPanel);
// 设置窗口属性
setTitle("Movie Ticket System");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
// 用户点击登录按钮,切换到电影列表页面卡片
cardLayout.show(cardPanel, "movieList");
} else if (e.getSource() == movieListButton) {
// 用户选择电影,切换到选座页面卡片
cardLayout.show(cardPanel, "selectSeat");
} else if (e.getSource() == selectSeatButton) {
// 用户选择座位,切换到确认订单页面卡片
cardLayout.show(cardPanel, "confirmOrder");
} else if (e.getSource() == confirmOrderButton) {
// 用户确认订单,切换到支付页面卡片
cardLayout.show(cardPanel, "pay");
} else if (e.getSource() == payButton) {
// 用户完成支付,回到登录界面卡片
cardLayout.show(cardPanel, "login");
}
}
public static void main(String[] args) {
new MovieTicketSystem();
}
}
```
在此示例中,我们创建了一个 JFrame 窗口和一个 JPanel 容器。然后,我们创建了不同的 JPanel 对象作为卡片,并将它们添加到容器中。通过设置不同的 Action Listener,我们可以在用户点击不同的按钮时,切换不同的卡片,从而实现页面的跳转。
希望对您有所帮助!
阅读全文