以下是一个实现随时间改变主题颜色的Java代码示例:

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ThemeColorChanger {
    
    private JFrame frame;
    private JPanel panel;
    private JLabel label;
    private Calendar calendar;
    private SimpleDateFormat dateFormat;
    
    public ThemeColorChanger() {
        initialize();
        startClock();
    }
    
    private void initialize() {
        frame = new JFrame();
        frame.setTitle("Theme Color Changer");
        frame.setSize(500, 200);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        panel = new JPanel(new FlowLayout());
        
        label = new JLabel("Hello, World!");
        label.setFont(new Font("Arial", Font.BOLD, 30));
        panel.add(label);
        
        frame.add(panel);
        frame.setVisible(true);
        
        calendar = Calendar.getInstance();
        dateFormat = new SimpleDateFormat("HH:mm:ss");
    }
    
    private void startClock() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    calendar.setTimeInMillis(System.currentTimeMillis());
                    String time = dateFormat.format(calendar.getTime());
                    label.setText("Current Time: " + time);
                    updateThemeColor();
                }
            }
        });
    }
    
    private void updateThemeColor() {
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int red = 0;
        int green = 0;
        int blue = 0;
        if (hour < 6) {
            // midnight blue
            red = 25;
            green = 25;
            blue = 112;
        } else if (hour < 12) {
            // cornflower blue
            red = 100;
            green = 149;
            blue = 237;
        } else if (hour < 18) {
            // sky blue
            red = 135;
            green = 206;
            blue = 235;
        } else {
            // deep sky blue
            red = 0;
            green = 191;
            blue = 255;
        }
        Color themeColor = new Color(red, green, blue);
        panel.setBackground(themeColor);
    }
    
    public static void main(String[] args) {
        new ThemeColorChanger();
    }
}

运行这个程序,它会在窗口中显示一个标签,每秒钟更新一次当前时间,并随着时间的变化而改变背景颜色。程序根据不同时段的时间将背景颜色设置为不同的值。在午夜时分,背景色是深蓝色;在上午,背景色是蓝色;在下午,背景色是浅蓝色;在晚上,背景色是深天蓝色。

java写一个随时间改变主题颜色

原文地址: https://www.cveoy.top/t/topic/OLX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录