
正文
电脑时钟java代码 电脑代码时钟怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用java编写一个时钟的程序
我给你做了一下:(第二个功能你自己加吧)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import java.text.*;
public class TestTimer extends JFrame implements ActionListener{
Timer timer;
JLabel display = new JLabel();
SimpleDateFormat dateFmt = new SimpleDateFormat("hh:mm:ss");
TestTimer(){
getContentPane().setLayout(new FlowLayout());
timer = new Timer(1000,this);
timer.setRepeats(true);
timer.setInitialDelay(1000);
timer.start();
getContentPane().add(display);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,100);
setVisible(true);
} // TestTimer
public void actionPerformed(ActionEvent e){
if(e.getSource() == timer){
display.setText(dateFmt.format(new Date()));
}
} // actionPerformed
public static void main(String[] args){
TestTimer tt = new TestTimer();
}
} // TestTimer
相关问答
Q1: java编程利用按钮实现时钟的停止和开始功能(原代码)
如下电脑时钟java代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.geom.*;
import java.util.*;
class Clock extends Canvas
implements ActionListener{
static JButton jb=new JButton("开始");
static JButton jb1=new JButton("暂停");
Date date;
Timer secondTime;
int hour,munite,second;
Line2D secondLine,muniteLine,hourLine;
int a,b,c;
double pointSX[]=new double[60],//用来表示秒针端点坐标电脑时钟java代码的数组
pointSY[]=new double[60],
pointMX[]=new double[60], //用来表示分针端点坐标的数组
pointMY[]=new double[60],
pointHX[]=new double[60], //用来表示时针端点坐标的数组
pointHY[]=new double[60];
Clock()
{ secondTime=new Timer(1000,this);
pointSX[0]=0; //12点秒针位置
pointSY[0]=-100;
pointMX[0]=0; //12点分针位置
pointMY[0]=-90;
pointHX[0]=0; //12点时针位置
pointHY[0]=-70;
double angle=6*Math.PI/180; //刻度为6度
for(int i=0;i59;i++) //计算出各个数组中的坐标
{ pointSX[i+1]=pointSX[i]*Math.cos(angle)-Math.sin(angle)*pointSY[i];
pointSY[i+1]=pointSY[i]*Math.cos(angle)+pointSX[i]*Math.sin(angle);
pointMX[i+1]=pointMX[i]*Math.cos(angle)-Math.sin(angle)*pointMY[i];
pointMY[i+1]=pointMY[i]*Math.cos(angle)+pointMX[i]*Math.sin(angle);
pointHX[i+1]=pointHX[i]*Math.cos(angle)-Math.sin(angle)*pointHY[i];
pointHY[i+1]=pointHY[i]*Math.cos(angle)+pointHX[i]*Math.sin(angle);
}
for(int i=0;i60;i++)
{ pointSX[i]=pointSX[i]+120; //坐标平移
pointSY[i]=pointSY[i]+120;
pointMX[i]=pointMX[i]+120; //坐标平移
pointMY[i]=pointMY[i]+120;
pointHX[i]=pointHX[i]+120; //坐标平移
pointHY[i]=pointHY[i]+120;
}
secondLine=new Line2D.Double(0,0,0,0);
muniteLine=new Line2D.Double(0,0,0,0);
hourLine=new Line2D.Double(0,0,0,0);
secondTime.start(); //秒针开始计时
}
public void paint(Graphics g)
{ for(int i=0;i60;i++) //绘制表盘上的小刻度和大刻度
{ int m=(int)pointSX[i];
int n=(int)pointSY[i];
if(i%5==0)
{ g.setColor(Color.red);
g.fillOval(m-4,n-4,8,8);
}
else
{ g.setColor(Color.cyan);
g.fillOval(m-2,n-2,4,4);
}
}
g.fillOval(115,115,10,10); //钟表中心的实心圆
Graphics2D g_2d=(Graphics2D)g;
g_2d.setColor(Color.red);
g_2d.draw(secondLine);
BasicStroke bs=
new BasicStroke(3f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
g_2d.setColor(Color.blue);
g_2d.draw(muniteLine);
bs=new BasicStroke(6f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
g_2d.setColor(Color.green);
g_2d.draw(hourLine);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==secondTime){
date=new Date();
String s=date.toString();
hour=Integer.parseInt(s.substring(11,13));
munite=Integer.parseInt(s.substring(14,16));
second=Integer.parseInt(s.substring(17,19)); //获取时间中的秒
int h=hour%12;
a=second; //秒针端点的坐标
b=munite; //分针端点的坐标
c=h*5+munite/12; //时针端点的坐标
secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);
muniteLine.setLine(120,120,(int)pointMX[b],(int)pointMY[b]);
hourLine.setLine(120,120,(int)pointHX[c],(int)pointHY[c]);
repaint();
} if(e.getSource()==jb){
secondTime.start();
}if(e.getSource()==jb1){
secondTime.stop();
}
}
public static void main(String args[]){
JFrame win=new JFrame("时钟");
JPanel jp=new JPanel();
jp.add(jb);
jp.add(jb1);
Clock clock=new Clock();
jb.addActionListener(clock);
jb1.addActionListener(clock);
win.add(clock,BorderLayout.CENTER);
win.add(jp,"South");
win.setVisible(true);
win.setSize(246,300);
win.setDefaultCloseOperation(3) ;
win.validate();
}
}
运行截图:
有问题就追问电脑时钟java代码,满意请采纳。
Q2: 怎么用java编写时钟呀?
import
java.util.*;
import
java.awt.*;
import
java.applet.*;
//impelements
Runnable
是线程程序的接口
public
class
Clock
extends
Applet
implements
Runnable
{
Thread
timer
=
null;
//
定义线程实体timer
int
xcenter
=
400,
ycenter
=
50;
int
Radius
=
ycenter
-
5;
public
void
init()
{
resize(400,
125);//
设置时钟程序的窗口大小
setBackground(Color.white);//
设置小应用程序的背景色
}
public
void
paint(Graphics
g)
{
int
xh,
yh,
xm,
ym,
xs,
ys,
s,
m,
h;
String
today;
Date
dat
=
new
Date();
//
定义时间类dat
s
=
dat.getSeconds();
//
获得时间秒
m
=
dat.getMinutes();
//
获得时间分
h
=
dat.getHours();
today
=
dat.toLocaleString();
//
获得字符串时间格式
g.clearRect(0,
0,
size().width,
size().height);
//
消除小应用程序
xcenter
=
xcenter
-
1;
//
向左移动一个像素点
if
(xcenter
-50)
xcenter
=
400;
//
如果xcenter小于-50电脑时钟java代码,则回到初始位置
//
计算秒的坐标
xs
=
(int)
(Math.cos(s
*
3.14f
/
30
-
3.14f
/
2)
*
(Radius
-
5)
+
xcenter);
ys
=
(int)
(Math.sin(s
*
3.14f
/
30
-
3.14f
/
2)
*
(Radius
-
5)
+
ycenter);
//
计算分钟的坐标
xm
=
(int)
(Math.cos(m
*
3.14f
/
30
-
3.14f
/
2)
*
(Radius
-
10)
+
xcenter);
ym
=
(int)
(Math.sin(m
*
3.14f
/
30
-
3.14f
/
2)
*
(Radius
-
10)
+
ycenter);
//
计算小时的坐标
xh
=
(int)
(Math.cos((h
*
30
+
m
/
2)
*
3.14f
/
180
-
3.14f
/
2)
*
(Radius
-
20)
+
xcenter);
yh
=
(int)
(Math.sin((h
*
30
+
m
/
2)
*
3.14f
/
180
-
3.14f
/
2)
*
(Radius
-
20)
+
ycenter);
g.setColor(Color.darkGray);
//
设置颜色
g.drawString("9",
xcenter
-
(Radius
-
5),
ycenter
+
3);
//
显示时钟上的数字‘9’
g.drawString("3",
xcenter
+
(Radius
-
10),
ycenter
+
3);
//
显示时钟上的数字‘3’
g.drawString("12",
xcenter
-
5,
ycenter
-
(Radius
-
13));
//
显示时钟上的数字'12'
g.drawString("6",
xcenter
-
3,
ycenter
+
(Radius
-
10));
//
显示时钟上的数字'6'
g.drawString(today,
0,
125);
//
显示字符串时钟
g.drawLine(xcenter,
ycenter,
xs,
ys);
//
画秒针
g.setColor(Color.blue);
//
设置颜色
g.drawArc(xcenter
-
Radius,
ycenter
-
Radius,
2
*
Radius,
2
*
Radius,
0,
360);
//
画钟
g.drawLine(xcenter,
ycenter
-
1,
xm,
ym);
//
画分针
g.drawLine(xcenter
-
1,
ycenter,
xm,
ym);
//
画分针
g.drawLine(xcenter,
ycenter
-
1,
xh,
yh);
//
画时针
g.drawLine(xcenter
-
1,
ycenter,
xh,
yh);
//
画时针
}
public
void
start()
{
if
(timer
==
null)
{
timer
=
new
Thread(this);
//
生成Thread(多线程程序)的对象实体
timer.start();
//
启动生成的线程
}
}
public
void
stop()
{
timer.stop();
//
停止线程的工作
timer
=
null;
//
放掉Thread对象
}
public
void
run()
//
改方法用来定义线程体电脑时钟java代码,一旦线程被启动执行电脑时钟java代码,就开始执行这个方法
{
while
(timer
!=
null)
{
try
{
Thread.sleep(150);
//
使当前正在执行的线程进入睡眠时间由参数millis确定,
//
单位时间是毫秒,当这个时间过去,线程即可运行的
while
(timer
!=
null)
{
try
{
Thread.sleep(150);//
使用当前正在执行的线程进入睡眠时间由参数
//
millis确定,单位是毫秒,当这个时间过去,线程即为可运行的
}
catch
(InterruptedException
e)
{
}
repaint();
//
repaint所做的事其实是去调用方法uadate重画效应用程序
}
timer
=
null;
}
catch
(InterruptedException
e)
{
}
}
}
//
所做的工作是先将整个效应用程序区域清除,再去调用paint,完成重画的动作
public
void
update(Graphics
g)
{
paint(g);
}
}
Q3: JAVA时钟代码解释
lz这个代码有什么看不懂的 如果这个代码看不懂的话 建议你从基础的开始学习吧
首先可以看到extends JFrame implements ActionListener 关于ActionListener 接口和JFrame 类lz有必要去看看 加入api慢慢研究下吧
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; 这个应该是算一个弧度吧
super("made by mcj and wdh"); 这句无意义 是父类的代码
setDefaultCloseOperation(3);这个方法是什么??代码不完整
setSize(300,300);设置窗体大小
setBackground(Color.white);设置背景色
setLocation(300,150); 定位
setResizable(false);不调整大小
setVisible(true);可见
后面的就没有代码了
Q4: 用 java 写一个clock的类,100毫秒的时钟 求代码。。越简单越好。。最好有注释
这里有一个时钟电脑时钟java代码的类电脑时钟java代码,电脑时钟java代码你看一下吧电脑时钟java代码,不明白电脑时钟java代码你的 100毫秒的时钟 是什么意思。
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Line2D;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class ClockAs extends Canvas implements ActionListener {
static JButton jb = new JButton("开始");
static JButton jb1 = new JButton("暂停");
Date date;
Timer secondTime;
int hour, munite, second;
Line2D secondLine, muniteLine, hourLine;
int a, b, c;
double pointSX[] = new double[60],// 用来表示秒针端点坐标的数组
pointSY[] = new double[60], pointMX[] = new double[60], // 用来表示分针端点坐标的数组
pointMY[] = new double[60], pointHX[] = new double[60], // 用来表示时针端点坐标的数组
pointHY[] = new double[60];
ClockAs() {
secondTime = new Timer(1000, this);
pointSX[0] = 0; // 12点秒针位置
pointSY[0] = -100;
pointMX[0] = 0; // 12点分针位置
pointMY[0] = -90;
pointHX[0] = 0; // 12点时针位置
pointHY[0] = -70;
double angle = 6 * Math.PI / 180; // 刻度为6度
for (int i = 0; i 59; i++) // 计算出各个数组中的坐标
{
pointSX[i + 1] = pointSX[i] * Math.cos(angle) - Math.sin(angle)
* pointSY[i];
pointSY[i + 1] = pointSY[i] * Math.cos(angle) + pointSX[i]
* Math.sin(angle);
pointMX[i + 1] = pointMX[i] * Math.cos(angle) - Math.sin(angle)
* pointMY[i];
pointMY[i + 1] = pointMY[i] * Math.cos(angle) + pointMX[i]
* Math.sin(angle);
pointHX[i + 1] = pointHX[i] * Math.cos(angle) - Math.sin(angle)
* pointHY[i];
pointHY[i + 1] = pointHY[i] * Math.cos(angle) + pointHX[i]
* Math.sin(angle);
}
for (int i = 0; i 60; i++) {
pointSX[i] = pointSX[i] + 120; // 坐标平移
pointSY[i] = pointSY[i] + 120;
pointMX[i] = pointMX[i] + 120; // 坐标平移
pointMY[i] = pointMY[i] + 120;
pointHX[i] = pointHX[i] + 120; // 坐标平移
pointHY[i] = pointHY[i] + 120;
}
secondLine = new Line2D.Double(0, 0, 0, 0);
muniteLine = new Line2D.Double(0, 0, 0, 0);
hourLine = new Line2D.Double(0, 0, 0, 0);
secondTime.start(); // 秒针开始计时
}
public void paint(Graphics g) {
for (int i = 0; i 60; i++) // 绘制表盘上的小刻度和大刻度
{
int m = (int) pointSX[i];
int n = (int) pointSY[i];
if (i % 5 == 0) {
g.setColor(Color.red);
g.fillOval(m - 4, n - 4, 8, 8);
} else {
g.setColor(Color.cyan);
g.fillOval(m - 2, n - 2, 4, 4);
}
}
g.fillOval(115, 115, 10, 10); // 钟表中心的实心圆
Graphics2D g_2d = (Graphics2D) g;
g_2d.setColor(Color.red);
g_2d.draw(secondLine);
BasicStroke bs = new BasicStroke(3f, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
g_2d.setColor(Color.blue);
g_2d.draw(muniteLine);
bs = new BasicStroke(6f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER);
g_2d.setStroke(bs);
g_2d.setColor(Color.green);
g_2d.draw(hourLine);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == secondTime) {
date = new Date();
String s = date.toString();
hour = Integer.parseInt(s.substring(11, 13));
munite = Integer.parseInt(s.substring(14, 16));
second = Integer.parseInt(s.substring(17, 19)); // 获取时间中的秒
int h = hour % 12;
a = second; // 秒针端点的坐标
b = munite; // 分针端点的坐标
c = h * 5 + munite / 12; // 时针端点的坐标
secondLine.setLine(120, 120, (int) pointSX[a], (int) pointSY[a]);
muniteLine.setLine(120, 120, (int) pointMX[b], (int) pointMY[b]);
hourLine.setLine(120, 120, (int) pointHX[c], (int) pointHY[c]);
repaint();
}
if (e.getSource() == jb) {
secondTime.start();
}
if (e.getSource() == jb1) {
secondTime.stop();
}
}
public static void main(String args[]) {
JFrame win = new JFrame("时钟");
JPanel jp = new JPanel();
jp.add(jb);
jp.add(jb1);
ClockAs clock = new ClockAs();
jb.addActionListener(clock);
jb1.addActionListener(clock);
win.add(clock, BorderLayout.CENTER);
win.add(jp, "South");
win.setVisible(true);
win.setSize(246, 300);
win.setDefaultCloseOperation(3);
win.validate();
}
}
Q5: java制作桌面时钟
如果楼主只是想做个简单的电子显示式的时钟电脑时钟java代码,可以有下面的一段代码电脑时钟java代码: Calendar c=new GregorianCalendar(); int hour=c.get(Calendar.HOUR); //得到时间中的小时 int minute=c.get(Calendar.MINUTE); //得到分 int second=c.get(Calendar.SECOND); //得到秒 当然电脑时钟java代码,上面的代码得导入import java.util.*;包 再创建个线程用于自动更新就行了,如果想做成带时针,分针,秒针能走动的那就用canvas 类的画图方法,结合一些数学知识就可以完成图形的了,还有二楼说的data类中的很多方法已经被java6列为过时的了
电脑时钟java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于电脑代码时钟怎么写、电脑时钟java代码的信息别忘了在本站进行查找喔。







