我目前正在尝试开发简单的游戏,但在制作游戏菜单时遇到一些麻烦。我在游戏菜单中使用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和英语。
答案 0 :(得分:4)
不要使用MouseListener。
我无法确切地说出你在做什么,但你应该使用带菜单的JMenuBar或JButton。无论如何,我建议你先阅读Swing tutorial来学习Swing的基础知识。有以下部分:
让你开始。
另外,您应该查看Using a Card Layout
部分。当您想要从框架中删除/添加面板时,这通常是更好的方法。