带有alpha值的Jlabel

时间:2010-06-02 22:32:37

标签: swing alpha

  

可能重复:
  How do I fade an image in swing?

我有jLabel,我想每秒改变它的不透明度(alpha值),我尝试了类似的东西,但它每秒都没有改变,JLabel只用最后的alpha值改变它的不透明度。

  Color color = jLabel1.getBackground();
    int alpha = 255;
    long initTime = System.currentTimeMillis();
    while(true){
        if(System.currentTimeMillis() - initTime >= 1000){
        initTime = System.currentTimeMillis();
        alpha -=1;
        Color color2 = new Color(color.getRed(),color.getGreen(),color.getBlue(),alpha);
        jLabel1.setBackground(color2);

        }
        if(alpha<=0)
            break;
    }

1 个答案:

答案 0 :(得分:1)

如果你在Event Dispatch Thread上运行它,使用说SwingUtilities.invokeLater,那么重绘只会在代码完成执行后发生。如需重复更新,请使用Swing Timer,详见本太阳教程:

您也可以查看Trident动画库中的Swing。