How do I call Graphics Method inside KeyListener?

前端 未结 2 570
被撕碎了的回忆
被撕碎了的回忆 2021-01-24 07:41

Ahead of time, I would like to say there have been many posts similar to this, however, none of them apply to me or none of them actually have any answer at all, and are outdate

相关标签:
2条回答
  • 2021-01-24 08:06

    OK! I actually figured it out by myself! What I did is called the g2d.rotate(.....) inside my draw() method. What I did is created variables that check for rotation, and set them true or false inside of my KeyPressed() method. Here is the code I used inside the draw() method:

     if(isRotatingPositive == true) {
        g2d.rotate(Math.toRadians(speed));
     } else if(isRotatingNegative == true) {
        g2d.rotate(Math.toRadians(-speed));
     }
    
    0 讨论(0)
  • 2021-01-24 08:13

    The wrong way: You can use Component.getGraphics() to get the graphics object.

    The right way: All painting should be done inside the paint(Component) method. This is because a user could resize/open/close the window at any time. In your KeyListener (also research keybindings) you should update a setting on how the player/ racket should be drawn, and then call repaint()

    0 讨论(0)
提交回复
热议问题