首页主机资讯利用Java的setVisible方法实现组件的渐变显示效果

利用Java的setVisible方法实现组件的渐变显示效果

时间2024-08-23 15:22:04发布访客分类主机资讯浏览1474
导读:要实现组件的渐变显示效果,可以利用Java中的Timer和javax.swing.Timer类来实现。下面是一个简单的示例代码,实现一个JPanel组件的渐变显示效果: import javax.swing.*; import java.a...

要实现组件的渐变显示效果,可以利用Java中的Timerjavax.swing.Timer类来实现。下面是一个简单的示例代码,实现一个JPanel组件的渐变显示效果:

import javax.swing.*;
    
import java.awt.*;
    
import java.awt.event.ActionEvent;
    
import java.awt.event.ActionListener;


public class FadeInComponent extends JFrame {
    

    private JPanel panel;


    public FadeInComponent() {
    
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        setSize(200, 200);
    

        panel = new JPanel();
    
        panel.setBackground(Color.RED);
    
        add(panel);


        Timer timer = new Timer(20, new ActionListener() {
    
            private float alpha = 0;


            @Override
            public void actionPerformed(ActionEvent e) {
    
                alpha += 0.05f;
    
                if(alpha >
 1.0f) {
    
                    ((Timer)e.getSource()).stop();

                }
    
                panel.setBackground(new Color(1.0f, 0.0f, 0.0f, alpha));
    
                panel.repaint();

            }

        }
    );
    

        timer.start();

    }


    public static void main(String[] args) {
    
        SwingUtilities.invokeLater(() ->
 {
    
            FadeInComponent fadeInComponent = new FadeInComponent();
    
            fadeInComponent.setVisible(true);

        }
    );

    }

}
    

这段代码创建了一个继承自JFrame的FadeInComponent类,其中包含一个JPanel组件panel。在FadeInComponent的构造函数中,创建了一个Timer对象,每20毫秒触发一次actionPerformed方法。在actionPerformed方法中,逐渐增加alpha值来实现颜色渐变效果,并使用setBackground方法设置panel的背景色,然后调用repaint方法实时更新显示。

运行代码后,会看到panel组件的背景色从透明到红色的渐变显示效果。可以根据需要调整Timer的间隔和alpha值的增加量来实现不同的渐变效果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 利用Java的setVisible方法实现组件的渐变显示效果
本文地址: https://pptw.com/jishu/695453.html
Java中setVisible方法的性能考虑因素有哪些 Java中setVisible方法在不同操作系统下的表现差异

游客 回复需填写必要信息