Java 当我单击JButton时,我希望游戏应该开始

Java 当我单击JButton时,我希望游戏应该开始,java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我正在做一个蛇游戏项目。我有三个名为: Engine.java GameBoard.java Snake.java 我在这个项目中添加了两个JFrames。第一帧中有三个按钮: 播放 规则 退出 当我们点击rules按钮时,它会打开rules jframe(它正在工作)。当我们点击play按钮时,它将运行蛇游戏。当我点击play按钮实际开始游戏时,请建议我应该做什么 这是我在play按钮actionPerformed方法中复制的代码: JFrame frame = new

我正在做一个蛇游戏项目。我有三个名为:

  • Engine.java
  • GameBoard.java
  • Snake.java
我在这个项目中添加了两个
JFrames
。第一帧中有三个按钮:

  • 播放
  • 规则
  • 退出
当我们点击
rules
按钮时,它会打开
rules jframe
(它正在工作)。当我们点击
play
按钮时,它将运行蛇游戏。当我点击
play
按钮实际开始游戏时,请建议我应该做什么

这是我在
play
按钮
actionPerformed
方法中复制的代码:

        JFrame frame = new JFrame("SnakeGame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        Canvas canvas = new Canvas();
        canvas.setBackground(Color.black);
        canvas.setPreferredSize(new Dimension(GameBoard.MAP_SIZE * GameBoard.TILE_SIZE, GameBoard.MAP_SIZE * GameBoard.TILE_SIZE));
        frame.add(canvas);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        new Engine(canvas).startGame();

在“播放”按钮中添加一个调用相应开始方法的按钮。

如果我正确理解了您的问题,我不知道:您的Snake.java是GUI吗? 如果是这样,当您单击播放按钮时,将GUI对象设为“Snake”:

JButton play = new JButton("play");

play.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e)
        {
            Snake play = new Snake();
        }
});

希望有帮助。

我已经添加了ActionListener来播放按钮。。我面临的问题是,当我单击“播放”按钮时,游戏板出现了,但snake没有移动,即snake静止不动。为了更快地获得更好的帮助,请发布一条。@ankush pruthi请使用“编辑”按钮,添加
引擎
代码,然后写更多关于您的问题的信息-您期望得到什么?你想试试什么?等等。不要使用AWT组件的画布。在Swing程序中,您可能会使用JPanel。@rebeliagamer:在这里,我遇到了一个问题,比如当我单击“播放”按钮时,屏幕上出现了“snake”和“fruit”,但问题是snake没有移动。最初在这个项目中只有三个类,为了改进GUI,我从我这边添加了两个JFrame。一个Jframe包含三个按钮,其中有一个“play”按钮,我想当点击play按钮时游戏应该开始,但我面临的问题是屏幕上出现游戏板,但snake没有移动,输出也挂起too@camickr此方法不适用于JPanel canvas.createBufferStrategy(2)。。有没有其他方法可以与JPael一起用于相同的目的。@Andrew Thompson没有java@Andrew汤普森:你当然是对的。这是android的源代码。我编辑了代码。@tharos ohh,现在我在其中添加了一些东西,这是一个start方法,它会导致您的snake移动?好的,然后在snake类的构造函数中调用startName()方法