java實(shí)現(xiàn)自定義時(shí)鐘并實(shí)現(xiàn)走時(shí)功能
本文實(shí)例為大家分享了java自定義時(shí)鐘并實(shí)現(xiàn)走時(shí)功能的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:

很多人想要自己用代碼實(shí)現(xiàn)一個(gè)簡單的時(shí)鐘,顯示時(shí)間,下面是我用JAVA寫的一個(gè)時(shí)鐘測試類
首先,我們先定義一個(gè)Time類,里面存放我們需要的setTime方法,可以自定義設(shè)定我們想要的時(shí)分秒,toUniversal()和toStandard()兩個(gè)成員方法分別對應(yīng)兩種時(shí)間制,24小時(shí)和12小時(shí)。
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");
? ? }
}我們之后再寫一個(gè)類,在里面實(shí)現(xiàn)我們的功能:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Timer;
import java.util.*;
?
public class TimeTest{
? ? //全員靜態(tài)變量
? ? static Integer i1=0,i2=0,i3=0;//時(shí)分秒
? ? static Time tt=new Time();//創(chuàng)建一個(gè)對象
? ? static TextField ta = new TextField(30);//兩個(gè)文本框存放兩個(gè)時(shí)間
? ? static TextField ka=new TextField(30);
? ? static Timer timer=new Timer();//設(shè)置一個(gè)Timer
? ? //設(shè)置靜態(tài)函數(shù)進(jìn)行時(shí)間轉(zhuǎn)換和timer時(shí)間調(diào)度器
? ? 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);//將獲取的兩個(gè)時(shí)間存放到文本域里面
? ? ? ? ? ? ? ? ka.setText(s2);
? ? ? ? ? ? ? ? i3++;//秒針自加
? ? ? ? ? ? }
? ? ? ? };
? ? ? ? timer.schedule(task,0,1000);//timer調(diào)度器從0開始,間隔一秒調(diào)度一次
? ? }
? ? public static void main(String[] args) {
? ? ? ? Frame frame = new Frame("鐘表的測試類");
? ? ? ? TextField text1=new TextField("時(shí)");
? ? ? ? TextField text2=new TextField("分");
? ? ? ? TextField text3=new TextField("秒");
? ? ? ? JButton button=new JButton("確認(rèn)");
? ? ? ? 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事件響應(yīng)
? ? ? ? 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);
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? //調(diào)用fun函數(shù)
? ? ? ? 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);
? ? ? ? //關(guān)閉frame窗口
? ? ? ? frame.addWindowListener(new WindowAdapter() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void windowClosing(WindowEvent e) {
? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? frame.pack();
? ? ? ? frame.setVisible(true);
? ? }
}里面用到了awt相關(guān)的類,做界面的時(shí)候很方便,大家如果看不懂,可以先去熟悉一下awt類,很容易上手,而且走時(shí)功能也只需要一個(gè)timer調(diào)度器便可以實(shí)現(xiàn)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘并設(shè)置鬧鐘功能
- Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能示例
- java多線程編程制作電子時(shí)鐘
- java實(shí)現(xiàn)的小時(shí)鐘示例分享
- Java編程小實(shí)例—數(shù)字時(shí)鐘的實(shí)現(xiàn)代碼示例
- Java實(shí)現(xiàn)的動(dòng)態(tài)數(shù)字時(shí)鐘功能示例【顯示世界時(shí)間】
- java實(shí)現(xiàn)時(shí)鐘效果
- Java實(shí)現(xiàn)動(dòng)態(tài)模擬時(shí)鐘
- Java實(shí)現(xiàn)動(dòng)態(tài)數(shù)字時(shí)鐘
- JavaFX實(shí)現(xiàn)簡易時(shí)鐘效果(一)
相關(guān)文章
基于springboot+jwt實(shí)現(xiàn)刷新token過程解析
這篇文章主要介紹了基于springboot+jwt實(shí)現(xiàn)刷新token過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
java中char類型轉(zhuǎn)換成int類型的2種方法
這篇文章主要給大家介紹了關(guān)于java中char類型轉(zhuǎn)換成int類型的2種方法,因?yàn)閖ava是一門強(qiáng)類型語言,所以在數(shù)據(jù)運(yùn)算中會(huì)存在類型轉(zhuǎn)換,需要的朋友可以參考下2023-07-07
mybatis教程之查詢緩存(一級緩存二級緩存和整合ehcache)
這篇文章主要介紹了mybatis教程之查詢緩存(一級緩存二級緩存和整合ehcache),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
SpringBoot一個(gè)接口多個(gè)實(shí)現(xiàn)類的調(diào)用方式總結(jié)
這篇文章主要介紹了SpringBoot一個(gè)接口多個(gè)實(shí)現(xiàn)類的調(diào)用方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
Java如何實(shí)現(xiàn)調(diào)用外部Api
這篇文章主要介紹了Java如何實(shí)現(xiàn)調(diào)用外部Api問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java實(shí)現(xiàn)的簡單數(shù)字處理類及用法示例
這篇文章主要介紹了Java實(shí)現(xiàn)的簡單數(shù)字處理類及用法,涉及java數(shù)字運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

