我需要绘制一个矩形、圆形和直线,然后对它们进行动画处理(例如,按左键 -> 它(所有对象)向左移动。)
我画这样的物体
class MyCanvas extends JComponent {
int x = 10;
int y = 10;
public MyCanvas()
{
Action someaction = new AbstractAction(){
@Override
public void actionPerformed(ActionEvent e) {
x+=30;
//revalidate();
repaint();
}
};
this.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), someaction);
}
@Override
public void paintComponent(Graphics g) {
g.drawRect(x,y, 200, 200);
g.drawOval(x, y, 50, 50);
g.drawLine(x, y, 50, 30);
}
}
但它不动。
最佳答案
使用
paintComponent(Graphics g)
用于 SwingJComponents
而不是paint(Graphics g)
使用
KeyBindings
对于KeyEvents
用于 SwingJComponents
将对象(在
paintComponent(Graphics g)
之前准备)放入数组中,在paintComponent(Graphics g)
中绘制数组中的元素
关于java - 为 3 个对象设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986784/