我有一个名为“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循环”在哪里。我试图将一个KeyListener放在DisplayPanel中,我失败了以更新矩形。没有循环,我无法重新绘制矩形,因为方法paintComponent接受了令人不快的参数。 OBS:每当我尝试插入循环时,软件都会崩溃,所以我放弃了这样做。
如何根据输入重新绘制对象?
答案 0 :(得分:2)
无法重绘矩形,因为paintComponent方法采用了令人不快的参数。 永远不要调用paintComponent,而是使用repaint()。
使用KeyBindings只需将“squarishThing”更新为适当的值,然后调用repaint()。