CardLayout cardLayout = new CardLayout(); private JPanel gamePanelContainer = new JPanel(cardLayout); private JLabel resultLabel;public ChengYuJieLong() { panel = new JPanel(); panel.setLayout(null); gamePanelContainer.add("主菜单",panel); gamePanelContainer.setLayout(cardLayout); public void actionPerformed(ActionEvent e) { if (e.getSource() == SimpleButton) { mode = 1; System.out.println("娱乐模式已选中"); Gameplay(mode); } if (e.getSource() == HardButton) { mode = 2; System.out.println("挑战模式已选中"); Gameplay(mode); } }public void Gameplay(int mode) { // 创建游戏界面 JPanel gamePanel = new JPanel(); gamePanel.setName("游戏界面"); // 设置组件名称 // 将游戏界面添加到容器中, gamePanelContainer.add("游戏界面",gamePanel); //gamePanelContainer.setLayout(cardLayout); // 将容器添加到窗口中 getContentPane().add(gamePanelContainer, BorderLayout.CENTER);// 添加返回按钮 JButton backButton = new JButton("返回"); backButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 切换到上一个界面 cardLayout.show(gamePanelContainer, "主菜单"); } });// 显示游戏界面 gamePanelContainer.setVisible(true); }为什么返回按钮没有用
时间: 2024-04-02 14:37:49 浏览: 54
使用Swing的CardLayout布局方式制作上一步下一步的对话框
5星 · 资源好评率100%
您的代码中 `Gameplay` 方法中的返回按钮应该可以正常使用,实现了切换到主菜单界面的功能。
可能的原因是您没有将返回按钮添加到游戏界面中,因此无法响应事件。您可以尝试使用 `gamePanel.add(backButton)` 将返回按钮添加到游戏界面中,这样就可以响应事件并切换到主菜单界面了。
阅读全文