0

我有一个名为“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:每次我尝试插入循环时,软件都会严重崩溃,所以我放弃了。

我可以做些什么来根据输入重新绘制对象?

4

1 回答 1

2

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

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

于 2013-06-03T02:24:35.400 回答