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í)鐘測(cè)試類
首先,我們先定義一個(gè)Time類,里面存放我們需要的setTime方法,可以自定義設(shè)定我們想要的時(shí)分秒,toUniversal()和toStandard()兩個(gè)成員方法分別對(duì)應(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è)對(duì)象 ? ? 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("鐘表的測(cè)試類"); ? ? ? ? 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)容,希望對(duì)大家的學(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自定義注解之實(shí)現(xiàn)AOP切面日志詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot自定義注解之實(shí)現(xiàn)AOP切面統(tǒng)一打印出入?yún)⑷罩?,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09Java導(dǎo)出Excel通用工具類實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Excel通用工具類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出操作詳解
在平常的辦公工作中,導(dǎo)入導(dǎo)出excel數(shù)據(jù)是常見的需求,今天就來看一下通過Java如何來實(shí)現(xiàn)這個(gè)功能,感興趣的朋友可以了解下2022-02-02Java多線程編程中易混淆的3個(gè)關(guān)鍵字總結(jié)
這篇文章主要介紹了Java多線程編程中易混淆的3個(gè)關(guān)鍵字總結(jié),本文總結(jié)了、volatile、ThreadLocal、synchronized等3個(gè)關(guān)鍵字,對(duì)這幾個(gè)容易混淆概念的關(guān)鍵字分別做了講解,需要的朋友可以參考下2015-03-03淺談mybatis-plus批量保存異常及效率優(yōu)化
本文主要介紹了mybatis-plus批量保存異常及效率優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01Java 8 開發(fā)的 Mybatis 注解代碼生成工具
MybatisAnnotationTools 是基于 Java8 開發(fā)的一款可以用于自動(dòng)化生成 MyBatis 注解類的工具,支持配置數(shù)據(jù)源、類路徑,表名去前綴、指定類名前后綴等功能.這篇文章主要介紹了Java 8 開發(fā)的 Mybatis 注解代碼生成工具 ,需要的朋友可以參考下2019-07-07SpringBoot集成redis實(shí)現(xiàn)共享存儲(chǔ)session
這篇文章主要介紹了SpringBoot集成redis實(shí)現(xiàn)共享存儲(chǔ)session的流程步驟,文中通過代碼示例介紹的非常詳細(xì),并總結(jié)了一些常見的錯(cuò)誤及解決方法,需要的朋友可以參考下2024-03-03JVM加載class文件的原理機(jī)制實(shí)例詳解
Java是一種具有動(dòng)態(tài)性的解釋型語言,類(class)只有被加載到JVM后才能運(yùn)行,接下來通過本文給大家介紹JVM加載class文件的原理機(jī)制詳解,感興趣的朋友一起看看吧2022-04-04