各位大神们..请教一个问题..在一个背景为半透明的JPanel中..如何实现简单的图片动画(例如图片移动)?
如果是在完全不透明的背景下..可以直接用一张矩形图将之前的图覆盖.但是如果是在半透明的情况下..如果依旧创建一张矩形图将其覆盖.则达不到背景半透明的效果..如果创建一个背景图(半透明)的矩形.那么原来的图片移动轨迹不能够完全覆盖...所以请问该如何实现..如果是利用一个背景图(半透明)的矩形将原先的覆盖..效果是这样的.
java半透明

解决方案 »

  1.   

    没完全明白你说的矩形覆盖是啥意思
    移动组件的话,算好坐标,直接repaint()就行了吧。背景应该一起重绘的
      

  2.   

    比如说我的背景现在是纯白色的完全不透明的,组件在这个背景下移动的话,实现从坐标(1,10)移动到(1,20)的直线移动,但是每次只移动1个单位,那么是不是应该在paint方法中实现将组件画出,然后在下一帧动画开始前,要将上一帧画出的组件擦除,利用update来实现双缓冲,创建一个image覆盖掉原来画出来的组件,然后才重画下一帧动画。private Image offScreenImage = null;public void update(Graphics g) {
    if (offScreenImage == null) {
    offScreenImage = this.createImage(800, 600);
    offScreenImage = bg;
    }

    //双缓冲
    Graphics offGraphics = offScreenImage.getGraphics();
    paint(offGraphics);
    g.drawImage(offScreenImage, 0, 0, null);
    }如果背景是纯色而且完全不透明的话,这样是可行的,但是如果是半透明的话,那么该怎么呢?就是说背景换成半透明的我就不知道该怎么去覆盖上一帧画出来的组件!!求救~感激不尽~