📜  十六进制代码颤动的颜色 - Java (1)

📅  最后修改于: 2023-12-03 15:22:48.183000             🧑  作者: Mango

十六进制代码颤动的颜色 - Java

在 Java 中,我们可以使用十六进制代码来表示颜色,十六进制代码的格式为 #RRGGBB,其中 RR 表示红色通道的值,GG 表示绿色通道的值,BB 表示蓝色通道的值。每个通道的值的范围是 00 到 FF,共 256 种可能的取值。

在这个主题中,我们将介绍如何使用 Java 实现一个可颤动的颜色。我们将使用 Java Swing 来创建一个窗口,在窗口中显示随机生成的颜色,并让其颤动起来。

以下是实现这个功能的代码片段:

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public class ShakingColor extends JFrame {
    private JPanel panel;

    public ShakingColor() {
        super("Shaking Color");

        panel = new JPanel();
        add(panel);

        setPreferredSize(new Dimension(400, 400));
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);

        startShaking();
    }

    private void startShaking() {
        new Thread(() -> {
            while (true) {
                String color = getRandomColor();
                panel.setBackground(Color.decode(color));
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

    private String getRandomColor() {
        Random random = new Random();
        int r = random.nextInt(256);
        int g = random.nextInt(256);
        int b = random.nextInt(256);
        return String.format("#%02X%02X%02X", r, g, b);
    }

    public static void main(String[] args) {
        new ShakingColor();
    }
}

这个代码片段定义了一个名为 ShakingColor 的类,它继承自 JFrame 类。在构造函数中,我们创建了一个名为 panel 的面板,并将其添加到窗口中。我们给窗口设置了一个首选大小,调用 pack() 方法来自动调整窗口的大小,让它符合面板的大小,并将窗口居中显示。我们还设置了关闭窗口时的行为,并将窗口设置为可见状态。

startShaking() 方法中,我们创建了一个新线程,用于随机生成颜色并将其设置为面板的背景颜色。在每次循环中,我们使用 getRandomColor() 方法生成一个随机颜色,并使用 Color.decode() 方法将其转换为 Color 对象,最后将其设置为面板的背景颜色。我们使用 Thread.sleep() 方法来让线程暂停一段时间,从而达到颤动的效果。

getRandomColor() 方法中,我们使用 java.util.Random 类来生成一个随机的红、绿、蓝通道的值,并将其格式化为十六进制代码的格式。

我们可以通过运行 main() 方法来启动这个程序。当程序运行时,窗口将会显示一个随机的颜色,并且这个颜色会不断变化和颤动。