我是Tween的新手,所以我用1张图片制作了框架并试图用Tween移动它。代码:
public class Fram extends JFrame {
public Fram() {
setSize(700, 500);
setLocationRelativeTo(null);
add(new Panol());
setVisible(true);
}
public static void main(String[] args) {
new Fram();
}
public class Panol extends JPanel implements ActionListener {
Imag img;
Rectangle r;
TweenManager tm;
Tween tween;
Timer time;
boolean t;
public Panol() {
tm = new TweenManager();
img = new Imag(new ImageIcon(
"C:/Djokix/JAVA/SlideProba/src/AL/Ludi Durenmatt.png"),
10, 10, 100, 100);
Tween.registerAccessor(Imag.class, new ParticleAccessor());
Tween.to(img, ParticleAccessor.POSITION_XY, 100).target(200, 300)
.ease(Quad.INOUT).delay(1000)
.start(tm);
}
@Override
public void paint(Graphics g) {
g.drawImage(img.getImg(), (int) img.x, (int) img.y, (int) img.w,
(int) img.h, null);
tm.update(1);
repaint();
}
@Override
public void actionPerformed(ActionEvent e) {
repaint();
}
}
}
运动有效,但重复没有,因此图片沿途留下了图像的痕迹。
如果有人知道问题是什么,请帮助!
答案 0 :(得分:0)
repaint()
没有清除JPanel,它只是表明需要再次调用paint方法。在绘画方法中,您应该在绘制之前清除背景。
我会在JPanel构造函数中设置setBackground(Color.BLACK);
的背景(白色或黑色),然后在paint方法的顶部调用super.paint(g)
。你可能也不需要在你的绘画方法中调用重绘。