gpt4 book ai didi

java - 无法使用 mouselistener 中的 JFrame 方法

转载 作者:行者123 更新时间:2023-11-29 03:29:56 26 4
gpt4 key购买 nike

我目前正在尝试开发简单的游戏,但在制作游戏菜单时遇到了一些麻烦。我将 JPanel 用于游戏菜单中的每个状态,例如指令或选项,并在父 JFrame 中使用方法根据用户在菜单上单击的项目来随机播放它们。

我的代码是这样的(没有像 setSize() 或 setVisible() 这样的简单方法)。

public class Game extends JFrame{

private JPanel mainPanel = new MainPanel();
private JPanel helpPanel; = new HelpPanel();
private JPanel optionPanel = new OptionPanel();
private JPanel currentPanel = new JPanel();

public Game(){
add(currentPanel);
}

public void changePanel(int destination){

remove(currentPanel);

if(destination==MAIN_PANEL)
currentPanel = mainPanel;
else if(destination==HELP_PANEL)
currentPanel = helpPanel;
else if(destination==OPTION_PANEL)
currentPanel = optionPanel;

add(currentPanel);
}

除了当我尝试在 mouselistener 中使用 changePanel 方法时,一切都完美无缺,它没有任何响应。然后我尝试了一些像这样的简单方法。

....
public void mouseClicked(MouseEvent e) {
removeAll();
JOptionPane.showConfirmDialog(null, "Pop when click anywhere.");
}
....

我希望我的 JFrame 会被清除并弹出对话框。该对话框确实会弹出,但对于 JFrame。我的问题是如何使用 mouselistener 中的那些简单方法。

对不起我糟糕的英语。我现在正在学习 Java 和英语。

最佳答案

不要使用 MouseListener。

我不能确切地说出您在做什么,但您可能应该使用带菜单的 JMenuBar 或 JButton。无论如何,我建议您先阅读 Swing tutorial学习 Swing 的基础知识。有以下部分:

  1. 如何使用菜单
  2. 如何使用按钮

开始吧。

您还应该查看有关使用卡片布局 的部分。当您想从框架中删除/添加面板时,这通常是更好的方法。

关于java - 无法使用 mouselistener 中的 JFrame 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com