效果图:
很多人想要自己用代码实现一个简单的时钟,显示时间,下面是我用JAVA写的一个时钟测试类
首先,我们先定义一个Time类,里面存放我们需要的setTime方法,可以自定义设定我们想要的时分秒,toUniversal()和toStandard()两个成员方法分别对应两种时间制,24小时和12小时。
public class Time {
public int hour;
public int minute;
public int second;
public Time(){
setTime(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)+":"+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.setBackground(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相关的类,做界面的时候很方便,大家如果看不懂,可以先去熟悉一下awt类,很容易上手,而且走时功能也只需要一个timer调度器便可以实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)