java 仿win7样式时钟日历代码
时间: 2023-11-27 19:02:57 浏览: 146
以下是一个简单的Java程序,可以实现一个类似于Win7样式的时钟和日历:
```java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Win7ClockCalendar extends JPanel implements Runnable {
private static final long serialVersionUID = 1L;
private Thread thread = null;
private SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a MMMM dd, yyyy");
private Font font = new Font("Arial", Font.BOLD, 24);
public Win7ClockCalendar() {
setBackground(Color.BLACK);
}
public void start() {
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
public void stop() {
if (thread != null) {
thread.interrupt();
thread = null;
}
}
public void run() {
while (thread != null) {
try {
Thread.sleep(1000);
repaint();
} catch (InterruptedException e) {
break;
}
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.setFont(font);
String str = sdf.format(new Date());
int width = g.getFontMetrics().stringWidth(str);
g.drawString(str, (getWidth() - width) / 2, getHeight() / 2);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Win7 Clock and Calendar");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Win7ClockCalendar clockCalendar = new Win7ClockCalendar();
frame.add(clockCalendar);
frame.setSize(500, 100);
frame.setVisible(true);
clockCalendar.start();
}
}
```
在这个程序中,我们使用一个JPanel作为主要的GUI组件,并使用一个线程来更新当前时间和日期。我们使用SimpleDateFormat来格式化日期和时间,并使用Font类来设置字体样式。我们还重写了paintComponent方法来绘制我们的时钟和日历。
要使用此程序,请将代码复制到您的Java IDE中,然后运行它。它将显示一个小窗口,其中包含当前的日期和时间,类似于Win7的时钟和日历。
阅读全文