我想使一个面板在执行新的操作时,渐渐隐去之前的所有内容(控件等)同时渐渐显示新添加的内容,请问这个效果应怎么实现?

解决方案 »

  1.   

    写了个渐渐隐去Panel的大概,供你参考import java.awt.AlphaComposite;
    import java.awt.Graphics2D;
    import javax.swing.JPanel;public class SuperPanel extends JPanel{

        public SuperPanel() {
    super();
        }

        public void doAnimate() {
    Graphics2D g2d = (Graphics2D)this.getGraphics();
    for (int i=0; i<101; i++) {
        g2d.setComposite(makeComposite(i*0.001f));
                 g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
        this.repaint();
    }
    g2d.dispose();
        }

        private AlphaComposite makeComposite(float alpha) {
            return(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
        }
    }调用方法如下:SuperPanel sPanel = new SuperPanel();
    sPanel.add(new JLabel("test label1"));
    sPanel.add(new JLabel("test label2"));
    sPanel.add(new JLabel("test label3"));
    sPanel.add(new JLabel("test label4"));
    ....
    //this是指的sPanel的parent;
    sPanel.doAnimate();
    this.remove(sPanel);
    this.repaint();
    //