Java动画关于重新描述图像



嗨,我当前正在制作一个程序,该程序将显示一个以我输入并使用物理公式的值移动的弹簧。问题是,当我创建一个弹簧并使动画开始时,旧图像一直存在并重要

bouton3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            /*anime.animer();
              anime.repaint();*/
            for (int t = 0; t < 500; t += 5) {
                for (int i = 105; i < 175; i += 5) {
                    Ellipse2D elp1 = new Ellipse2D.Double(i, 100, 15, 30);
                    ((Graphics2D) dessinPanel.getGraphics()).draw(elp1);

                }
                for (int i = 105; i < 175; i += 5) {
                    Ellipse2D elp1 = new Ellipse2D.Double(i, 100, 15 + osi.simuler(t), 30);
                    ((Graphics2D) dessinPanel.getGraphics()).draw(elp1);
                    dessinPanel.repaint();
                    Rectangle2D rect = new Rectangle2D.Double(186 + osi.simuler(t), 90, 50, 50);
                    ((Graphics2D) dessinPanel.getGraphics()).draw(rect);
                    dessinPanel.repaint();
                }
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    });

这也是一些图片来显示问题:前

之后

您需要从价值调整中解除绘画。

您的绘画操作应从清除背景开始,然后使用当前输入值绘制弹簧和盒子。

当输入值更改时,只需更新变量并无效((显示区域。

为了获得更好的性能,也可以通过在其当前位置以背景颜色绘制弹簧和框来清除背景。这也使更新输入值更加困难。

您可能会使用的另一种技术是扩大刷子并首先绘制背景颜色,然后缩小刷子并以正确形式绘制实际的弹簧和矩形。只要您控制金额可以在一个框架中移动的金额,这将等效于擦除背景。

最新更新