java写一个随时间改变主题颜色
以下是一个实现随时间改变主题颜色的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();
}
}
运行这个程序,它会在窗口中显示一个标签,每秒钟更新一次当前时间,并随着时间的变化而改变背景颜色。程序根据不同时段的时间将背景颜色设置为不同的值。在午夜时分,背景色是深蓝色;在上午,背景色是蓝色;在下午,背景色是浅蓝色;在晚上,背景色是深天蓝色。
原文地址: https://www.cveoy.top/t/topic/OLX 著作权归作者所有。请勿转载和采集!