java实现自定义时钟并实现走时功能

网友投稿 324 2022-07-21


本文实例为大家分享了java自定义时钟并实现走时功能的具体代码,供大家参考,具体内容如下

效果图:

很多人想要自己用代码实现一个简单的时钟,显示时间,下面是我用JAVA写的一个时钟测试类

首先,我们先定义一个Time类,里面存放我们需要的setTime方法,可以自定义设定我们想要的时分秒,toUniversal()和toStandard()两个成员方法分别对应两种时间制,24小时和12小时。

public class Time {

public int hour;

public int minute;

public int second;

public Time(){

setTimehttp://(0,0,0);

};

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

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

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

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

}

public String toUniversal(){

return hour+":"+minute+":"+second;

}

public String toStandard(){

return((hour==12||hour==0)?12:hour%12)+":WEqGS"+minute+":"+second

+(hour<12?"AM":"PM");

}

}

我们之后再写一个类,在里面实现我们的功能:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.Timer;

import java.util.*;

public class TimeTest{

//全员静态变量

static Integer i1=0,i2=0,i3=0;//时分秒

static Time tt=new Time();//创建一个对象

static TextField ta = new TextField(30);//两个文本框存放两个时间

static TextField ka=new TextField(30);

static Timer timer=new Timer();//设置一个Timer

//设置静态函数进行时间转换和timer时间调度器

public static void fun(){

TimerTask task=new TimerTask() {

@Override

//run走针操作

public void run() {

if(i3==60)

{i3=0;

i2++;

if(i2==60)

{

i1++;

i2=0;

if(i1==24){

i1=0;

}

}

}

tt.setTime(i1,i2,i3);

String s1= tt.toUniversal();

String s2=tt.toStandard();

ta.setText(s1);//将获取的两个时间存放到文本域里面

ka.setText(s2);

i3++;//秒针自加

}

};

timer.schedule(task,0,1000);//timer调度器从0开始,间隔一秒调度一次

}

public static void main(String[] args) {

Frame frame = new Frame("钟表的测试类");

TextField text1=new TextField("时");

TextField text2=new TextField("分");

TextField text3=new TextField("秒");

JButton button=new JButton("确认");

Font f=new Font("仿宋",Font.BOLD+Font.CENTER_BASELINE,30);

ta.setFont(f);

ka.setFont(f);

ta.setBhttp://ackground(Color.GRAY);

ka.setBackground(Color.GRAY);

text1.setFont(f);

text2.setFont(f);

text3.setFont(f);

//button事件响应

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String d0=text1.getText().trim();

String d2=text2.getText().trim();

String d3=text3.getText().trim();

i1=Integer.valueOf(d0);

i2=Integer.valueOf(d2);

i3=Integer.valueOf(d3);

tt.setTime(i1,i2,i3);

}

});

//调用fun函数

fun();

Box aBox=Box.createVerticalBox();

aBox.add(text1);

aBox.add(text2);

aBox.add(text3);

aBox.add(button);

Box bBox=Box.createVerticalBox();

bBox.add(ta);

bBox.add(ka);

Box cBox = Box.createHorizontalBox();

cBox.add(bBox);

cBox.add(aBox);

//将cBox加入到frame框架里面

frame.add(cBox);

//关闭frame窗口

frame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

frame.pack();

frame.setVisible(true);

}

}

里面用到了awt相关的类WEqGS,做界面的时候很方便,大家如果看不懂,可以先去熟悉一下awt类,很容易上手,而且走时功能也只需要一个timer调度器便可以实现。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Cloud Eureka服务注册中心入门流程分析
下一篇:一文搞懂Java中的注解和反射
相关文章

 发表评论

暂时没有评论,来抢沙发吧~