有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用键在JPanel中移动矩形

我有一个名为“DisplayPanel”的类(它扩展了JPanel),我在那里画了一个正方形,它来自一个名为“square”的类(它扩展了JComponent)。如何使用按键在JPanel中移动矩形

Square类具有常用的绘制方法:

public void paintComponent(Graphics g) {
    Dimension dimension = getSize();
    super.paintComponent(g);
    Graphics2D graphics2D = (Graphics2D) g;
    g.setColor(Color.black);
    graphics2D.fill(squarishThing); 
}

“squarishThing”是一个普通矩形:

Rectangle squarishThing = new Rectangle (0, 0, 50, 50);

问题是:与“游戏库”不同,试图“手动”完成这样的事情是相当令人困惑的。我不知道“while循环”去哪里了。我试图在DisplayPanel中放置一个KeyListener,但不幸地未能更新矩形。没有循环,我无法重新绘制矩形,因为paintComponent方法接受了那个令人不快的参数。OBS:每次我尝试插入循环时,软件都会急剧崩溃,所以我放弃了这样做

如何根据输入重新绘制对象


共 (1) 个答案

  1. # 1 楼答案

    无法重新绘制矩形,因为paintComponent方法接受了不愉快的参数。 永远不要调用paintComponent,而是使用repaint()

    使用键绑定只需将“squarishThing”更新为适当的值,然后调用repaint()