求用java语言设计一个动态时钟,每秒刷新一次

求用java语言设计一个动态时钟,每秒刷新一次,第1张

package comkaylves;

import javatextSimpleDateFormat;

import javautilDate;

import javaxswingJFrame;

import javaxswingJLabel;

public class Clock {

public static void main(String[] args) throws InterruptedException {

JFrame f = new JFrame();

Timer timer = new Timer();

Thread th=new Thread(timer);

thstart();

JLabel time = new JLabel();

fadd(time);

fsetVisible(true);

fpack();

while(true){

timesetText(timergetCurrentTime());

}

}

}

class Timer implements Runnable {

private String currentTime;

public String getCurrentTime() {

Date d = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

currentTime = sdfformat(d);

return currentTime;

}

public void run() {

try {

Threadsleep(1000);

getCurrentTime();

} catch (InterruptedException e) {

eprintStackTrace();

}

}

}

完成给分

import javautilCalendar;

public class Clock {

private int hour, mintue, second;

public Clock(){

this(0, 0, 0);

}

public Clock(int hour, int minute, int second){

thishour = hour;

thismintue = minute;

thissecond = second;

}

public void incsecond(){

Calendar cal = CalendargetInstance();

calset(CalendarHOUR, hour);

calset(CalendarMINUTE, mintue);

calset(CalendarSECOND, second);

caladd(CalendarSECOND, 1);

thishour = calget(CalendarHOUR);

thismintue = calget(CalendarMINUTE);

thissecond = calget(CalendarSECOND);

}

public String toString(){

return hour + ":" +mintue + ":" + second;

}

public void setHour(int hour) {

thishour = hour;

}

public void setMintue(int mintue) {

thismintue = mintue;

}

public void setSecond(int second) {

thissecond = second;

}

public static void main(String[] args) {

}

}

public class A {

public static void main(String[] args) {

Clock clock = new Clock(13, 20, 38);

Systemoutprint(clock);

}

}

class Clock {

private int hour;

private int minute;

private int second;

public Clock(int hour, int minute, int second) {

super();

thishour = hour;

thisminute = minute;

thissecond = second;

}

public int getHour() {

return hour;

}

public void setHour(int hour) {

thishour = hour;

}

public int getMinute() {

return minute;

}

public void setMinute(int minute) {

thisminute = minute;

}

public int getSecond() {

return second;

}

public void setSecond(int second) {

thissecond = second;

}

@Override

public String toString() {

return "现在时间是:" + hour + "时" + minute + "分" + second + "秒";

}

}

//这是新建了一个public类,名称为Time

public class Time{

//其中有三个变量,表示时分秒

private int hour;

private int minute;

private int second;

//此处即为空参数的构造函数,即当声明这个类的对象时,怎样初始化这个对象里面的值

//每个对象都表示个时间。

//这个构造函数调用了这个类里面的有三个参数的构造函数。

public Time(){

this(0,0,0);

}

//此处为一个参数的构造函数

public Time(int h){

this(h,0,0);

}

//此处为二个参数的构造函数

public Time(int h,int m){

this(h,m,0);

}

//此处为三个参数的构造函数,即前面的构造函数调用了这个构造函数来初始化对象的时间值

public Time(int h,int m,int s){

setTime(h,m,s);

}

//此处是构造函数,参数为这个类的对象:

//即用一个已经表示一个时间的Time对象来创建一个和它一样的时间对象

public Time(Time time){

this(timegetHour(),timegetMinute(),timegetSecond());

}

//设置时间值

public void setTime(int h,int m,int s){

setHour(h);

setMinute(m);

setSecond(s);

}

//设置时

public void setHour(int h){

hour=((h>=0&&h<24)h:0);

}

//设置分

public void setMinute(int m){

minute=((m>=0&&m<60)m:0);

}

//设置秒

public void setSecong(int s){

second=((s>=0&&s<60)s:0);

}

//获得这个时间对象的时

public int getHour(){

return hour;

}

//获得分

public int getMinute(){

return minute;

}

//获得秒

public int getSecond(){

return second;

}

//格式化时间成为串

public String toUniversalString(){

return Stringformat("%d:%02d:%02d",getHour(),getMinute(),getSecond());

}

//格式化这个时间成为串

public String toString(){

return Stringformat("%d:%02d:%02d%s",((getHour()==0||getHour()==12)12:getHour()%12),getMinute(),getSecond(),(getHour()<12"AM":"PM"));

}

}

构造方法:通过这个程序可以看出,一个时间对象表示一个时间,有时分秒,那么创建对象要给它表示个时间,构造函数就是初始化有关的 *** 作。

比如我创建一个对象Time time0=new Time(8,20,20);那么time0就表示8:20:20。

构造函数通常的格式是:public + 类名称(参数列表){},记住,它没有返回值。

重载:可以看到里面不只一个构造函数,这就是重载。你可能并不一定要确切的时分秒或其它,这样就可以调用不同的构造函数。

比如:Time time1=new Time(time0);这也创建了对象,此对象表示的时间和time0是一样的。

重载的意思是一个函数,参数列表的不同可以实现不同的功能。

import javaawt;

import javaappletApplet;

import javautilCalendar;

import javatextSimpleDateFormat;

import javautilDate;

public class ClockApplet extends Applet implements Runnable //Applet支持线程

{

private Thread athread; //线程

private SimpleDateFormat sdateformat; //日期格式

public void init()

{

thissetBackground(Colorwhite);//背景颜色设为白色

thisathread = null;

}

public void paint(Graphics g)

{

thissdateformat = new SimpleDateFormat("hh时mm分ss秒");

gdrawString(thissdateformatformat(new Date()),25,131);

Calendar rightnow = CalendargetInstance();

int second = rightnowget(CalendarSECOND);

int minute = rightnowget(CalendarMINUTE);

int hour = rightnowget(CalendarHOUR);

//半径

int R_H = 20,R_M = 4,R_S = 4;

//时针的坐标

//x ====(9-3)[0-6] (3-9)[6-0]

//y ====(12-6)[0-6] (6-12)[6-0]

int H_x ;

int H_y;

//x

if(hour == 0)

{

hour = 12;

}

if( hour >= 3 && hour <= 9 )

{

H_x = R_HMathabs(hour - 9);

}

else

{

if(hour > 9)

{

H_x = R_HMathabs(hour - 9);

}

else

{

H_x = R_HMathabs(hour+3);

}

}

//y

if( hour >= 6 && hour <= 12 )

{

H_y = R_HMathabs(hour - 12);

}

else

{

H_y = R_Hhour;

}

//分针的坐标

int M_x;

int M_y;

if(minute == 0)

{

minute = 60;

}

if( minute >= 15 && minute <= 45 )

{

M_x = R_MMathabs(minute - 45);

}

else

{

if(minute > 45)

{

M_x = R_MMathabs(minute - 45);

}

else

{

M_x = R_MMathabs(minute+15);

}

}

//y

if( minute >= 30 && minute < 60 )

{

M_y = R_MMathabs(minute - 60);

}

else

{

M_y = R_Mminute;

}

//秒针的坐标

int S_x;

int S_y;

if(second == 0)

{

second = 60;

}

if( second >= 15 && second <= 45 )

{

S_x = R_SMathabs(second - 45);

}

else

{

if(second > 45)

{

S_x = R_SMathabs(second - 45);

}

else

{

S_x = R_SMathabs(second+15);

}

}

//y

if( second >= 30 && second <= 60 )

{

S_y = R_SMathabs(second - 60);

}

else

{

S_y = R_Ssecond;

}

// gdrawString(StringvalueOf(second),25,50);

// gdrawString(StringvalueOf(minute),25,60);

// gdrawString(StringvalueOf(hour),25,70);

// gdrawString(StringvalueOf(H_x),25,80);

// gdrawString(StringvalueOf(H_y),25,90);

gdrawOval(0,0,120,120);//距离相差10像素

gsetColor(ColordarkGray);

gdrawString("9",5,65);

gdrawString("3",110,65);

gdrawString("12",55,15);

gdrawString("6",55,115);

gdrawString("1",80,20);

gdrawString("2",100,40);

gdrawString("4",100,90);

gdrawString("5",80,110);

gdrawString("7",30,110);

gdrawString("8",10,90);

gdrawString("10",10,40);

gdrawString("11",30,20);

gsetColor(Colorred);

gdrawLine(60,60,H_x,H_y);//前一个点表示起点,另一个表示终点

gsetColor(Colorblue);

gdrawLine(60,60,M_x,M_y);

gsetColor(Coloryellow);

gdrawLine(60,60,S_x,S_y);

}

public void start()

{

if(athread == null)

{

athread = new Thread(this);

athreadstart();

}

}

public void stop()

{

if(athread != null)

{

athreadinterrupt();

athread = null;

}

}

public void run()

{

while(athread != null)

{

repaint();

try

{

athreadsleep(1000);

}

catch(InterruptedException e)

{

}

}

}

}

以上就是关于求用java语言设计一个动态时钟,每秒刷新一次全部的内容,包括:求用java语言设计一个动态时钟,每秒刷新一次、java程序设计 定义一个时钟类,要求如下1,创建新对象时默认0时0分0秒。 2,设置时钟为指定的时间。3,编写、写一个时钟的java类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9429106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存