import java.awt.*;
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联公司坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站建设、成都做网站、微信公众号开发、电商网站开发,小程序开发,软件定制网站建设等一站式互联网企业服务。
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
public class Test extends JFrame implements ActionListener{
Timer t=new Timer(1000,this);
GregorianCalendar calendar=new GregorianCalendar();
JLabel label1=new JLabel(new Date().toString()),
label2=new JLabel("
");
public Test(){
super("TIME");
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
c.add(label1);c.add(label2);
t.start();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(200,200,200,100);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
Date date=new Date();
calendar.setTime(date);
if(e.getSource()==t){
label1.setText(date.toString());
if(calendar.get(Calendar.MINUTE)==0)//当分钟为0报时
if(calendar.get(Calendar.SECOND)=5){//持续5秒报时
if(calendar.get(Calendar.SECOND)%2==0)
label2.setText("现在是北京时间"+calendar.get(Calendar.HOUR_OF_DAY)+"点整。");
if(calendar.get(Calendar.SECOND)%2==1)
label2.setText("
");
}
}
}
public static void main (String[] args) {
new Test();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.util.concurrent.*;
public class Clock extends JFrame implements Runnable {
private JLabel label = new JLabel();
public Clock() {
this("Q6");
label.setFont(new Font("Dialog", Font.BOLD, 72));
flush();
this.add(label);
this.pack();
ExecutorService exec = Executors.newCachedThreadPool();
exec.execute(this);
}
public static void main(String[] args) {
Clock c = new Clock();
c.setVisible(true);
}
private void flush() {
String strTime = String.format("%tT", new Date());
label.setText(strTime);
}
public void run() {
while(true) {
flush();
try {
Thread.sleep(1000);
} catch(Exception e) {}
}
}
}
你还是用我这个吧,也可以参考一下
package awt;
import java.awt.*;
import java.applet.*;
import java.util.Date; //这是Java中的低级实用工具包,可以处理时间等内容。
public class display_clock extends Applet implements Runnable // 有线程运行接口
{
Date timenow; // Date是一个时间定义与创建函数.
Clock myClock; // 用户自定义的类
Thread clockthread = null; // 设置一个线程
public void start() // 线程开始的类
{
if (clockthread == null) // 如果线程为空,则
{
clockthread = new Thread(this); // 开始新的线程
clockthread.start(); // 开始
}
}
public void stop() // 终止线程
{
clockthread.stop(); // 终止线程,使它
clockthread = null; // 为空
}
public void run() // 运行线程
{
while (true) // 一个死循环,条件永远都是真的。
{
repaint(); // 重新绘制界面
try {
Thread.sleep(1000);
} // 让线程沉睡1000毫秒,也就是一秒钟
catch (InterruptedException e) {
} // 捕获异常(也就是错误)
}
}
public void paint(Graphics g)
{
timenow = new Date(); // 新的时间的获得
// 获得小时,分钟,秒钟
myClock = new Clock(timenow.getHours(), timenow.getMinutes(), timenow
.getSeconds());
g.drawString(timenow.toString(), 25, 240);// 将它打印出来!
myClock.show(g, 100, 100, 100); // 使面板显示
}
}
class Clock // 用户自定义的类开始,编译后,它单独成为一个CLASS文件
{
Clock(int hrs, int min, int sec) // 类函数入口
{
hour = hrs % 12; // 将原始数据处理,得到小时
minute = min; // 将原始数据处理,得到分钟
second = sec; // 将原始数据处理,得到小时
}
void show(Graphics g, int cx, int cy, int rad) // 重新定义SHOW函数
{
int hrs_len = (int) (rad * 0.5), // 时针的长度
min_len = (int) (rad * 0.6), // 分钟的长度
sec_len = (int) (rad * 0.9); // 秒钟的长度
double theta;
// 画出钟面
g.drawOval(cx - rad, cy - rad, rad * 2, rad * 2);
// 画出时针
theta = (double) (hour * 60 * 60 + minute * 60 + second) / 43200.0
* 2.0 * Math.PI;
drawNiddle(g, Color.blue, cx, cy, hrs_len, theta);
// 画出分针
theta = (double) (minute * 60 + second) / 3600.0 * 2.0 * Math.PI;
drawNiddle(g, Color.red, cx, cy, sec_len, theta);
// 画出秒针
theta = (double) (second) / 60.0 * 2.0 * Math.PI;
drawNiddle(g, Color.green, cx, cy, sec_len, theta);
}
private void drawNiddle(Graphics g, Color c, int x, int y, int len,
double theta)
{
int ex = (int) (x + len * Math.sin(theta));
int ey = (int) (y - len * Math.cos(theta));
g.setColor(c);
g.drawLine(x, y, ex, ey);
}
int hour, minute, second;
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import sun.util.calendar.Gregorian;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class ClockPointer extends JFrame{
int x, y, x0, y0, r, h, olds_x, olds_y, oldm_x, oldm_y, oldh_x, oldh_y,
ss,mm, hh, old_m, old_h, ang;
final double RAD = Math.PI/180;
public ClockPointer(){
super("Java时钟");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Image image = getToolkit().getImage("clock.gif");
setIconImage(image);
setSize(400,400);
setBackground(Color.white);
//setLocation(300,150);
this.setLocationRelativeTo(null);
setResizable(true);
int delay = 1000;
//创建一个监听事件
setVisible(true);
ActionListener drawClock = new ActionListener(){
public void actionPerformed(ActionEvent evt){
repaint();
}
};
//创建一个时间计数器,每一秒触发一次
new Timer(delay, drawClock).start();
}
java.text.SimpleDateFormat fmTime = new java.text.SimpleDateFormat("HH:mm:ss");
//绘制图形
public void paint(Graphics g){
super.paint(g);
g.setFont(null);
Graphics2D g2D = (Graphics2D)g;
Insets insets = getInsets();
int L = insets.left/2, T = insets.top/2;
h = getSize().height;
g.setColor(Color.white);
//画圆
g2D.setStroke(new BasicStroke(2.0f));
g.setColor(Color.gray);
g.drawOval(L+40, T+40, h-80, h-80);
r = h/2 - 40;
x0 = 40 + r - 5 + L;
y0 = 40 + r - 5 - T;
ang = 60;
//绘制时钟上的12个字
for(int i = 1;i = 12;i ++){
x = (int)((r+10)*Math.cos(RAD*ang)+x0);
y = (int)((r+10)*Math.sin(RAD*ang)+y0);
g.setColor(Color.black);
g.drawString(""+i, x, h-y);
ang -=30;
}
//获得现在的时间
Calendar now = new GregorianCalendar();
int nowh = now.get(Calendar.HOUR_OF_DAY);
int nowm = now.get(Calendar.MINUTE);
int nows = now.get(Calendar.SECOND);
String st=fmTime.format(now.getTime());
//在窗体上显示时间
g.setColor(Color.pink);
g.fillRect(L, T, 50, 28);
g.setColor(Color.blue);
g.drawString(st,L+2,T+26);
//计算时间与度数的关系
ss = 90 - nows*6;
mm = 90 - nowm*6;
hh = 90 - nowh*30 - nowm/2;
x0 = r+40+L;
y0 = r+40+T;
g2D.setStroke(new BasicStroke(1.2f));
//擦除秒针
//if(olds_x 0){
// g.setColor(getBackground());
// // g.setColor(Color.gray);
// g.drawLine(x0, y0, olds_x, h-olds_y); // (?)
//}
//绘制秒针
x = (int)(r*0.9*Math.cos(RAD*ss))+x0;
y = (int)(r*0.9*Math.sin(RAD*ss))+y0-2*T;
g.setColor(Color.yellow);
g.drawLine(x0, y0, x, h-y);
olds_x = x;
olds_y = y;
g2D.setStroke(new BasicStroke(2.2f));
//擦除分针
//if(old_m!=mm){
// g.setColor(getBackground());
// g.drawLine(x0,y0,oldm_x,h-oldm_y);
//}
//绘制分针
x = (int)(r*0.7*Math.cos(RAD*mm))+x0;
y = (int)(r*0.7*Math.sin(RAD*mm))+y0-2*T;
g.setColor(Color.green);
g.drawLine(x0,y0,x,h-y);
oldm_x = x;
oldm_y = y;
old_m = mm;
g2D.setStroke(new BasicStroke(3.2f));
//擦除时针
//if(old_h!=hh){
// g.setColor(getBackground());
// g.drawLine(x0,y0,oldh_x,h-oldh_y);
//}
//绘制时针
x = (int)(r*0.5*Math.cos(RAD*hh))+x0;
y = (int)(r*0.5*Math.sin(RAD*hh))+y0-2*T;
g.setColor(Color.red);
g.drawLine(x0,y0,x,h-y);
oldh_x = x;
oldh_y = y;
old_h = hh;
}
public static void main(String[] args){
new ClockPointer();
}
}
//整理一下