java實現自定義時鐘並實現走時功能

本文實例為大傢分享瞭java自定義時鐘並實現走時功能的具體代碼,供大傢參考,具體內容如下

效果圖:

很多人想要自己用代碼實現一個簡單的時鐘,顯示時間,下面是我用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調度器便可以實現。

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: