📅  最后修改于: 2023-12-03 14:42:13.945000             🧑  作者: Mango
以下是一个简单的Java Eclipse程序,用于创建工作时钟。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class WorkingClock extends JPanel implements Runnable {
private static final long serialVersionUID = 1L;
private Thread runner = null;
private DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
public WorkingClock() {
setPreferredSize(new Dimension(150, 30));
setBackground(Color.white);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
String time = formatter.format(new Date());
g.setFont(new Font("SansSerif", Font.BOLD, 12));
g.setColor(Color.BLACK);
g.drawString(time, 10, 20);
}
public void start() {
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
public void stop() {
if (runner != null) {
runner.interrupt();
runner = null;
}
}
@Override
public void run() {
while (runner == Thread.currentThread()) {
try {
repaint();
Thread.sleep(1000);
} catch (InterruptedException ie) {
break;
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Working Clock");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
WorkingClock clock = new WorkingClock();
frame.getContentPane().add(clock);
frame.pack();
frame.setVisible(true);
clock.start();
}
}
该程序创建了一个名为Working Clock的JFrame窗口,并在其中添加了一个WorkingClock对象。WorkingClock对象是一个扩展JPanel的类,用来绘制当前的时间,它实现了Runnable接口,以便可以在新的线程中运行。
WorkingClock类具有下列方法:
在主方法中,创建了一个新的JFrame对象,并创建了WorkingClock对象。通过工具箱,利用frame.getContentPane().add方法将WorkingClock对象添加到JFrame对象中。然后,在frame.pack和frame.setVisible方法调用之后,start方法被调用,以便开始程序的运行。程序将在WorkingClock对象的新线程中运行并绘制时钟。