Java实现迷你小闹钟源代码
JavaFX实现简易时钟效果

JavaFX实现简易时钟效果本⽂实例为⼤家分享了JavaFX实现简易时钟效果的具体代码,供⼤家参考,具体内容如下⾸先要在⾯板中显⽰⼀个时钟,我们可以设计⼀个ClockPane类来显⽰⼀个时钟。
最终效果:若要绘制⼀个时钟,需要绘制⼀个圆并为秒钟、分钟和⼩时绘制三个指针。
为了画⼀个指针,需要确定⼀条直线的两端:⼀端是时钟的中央,位于(centerX,centerY);另外⼀端位于(endX,endY),由⼀下公式来确定:endX=centerX+handLength×sin(θ) endY=centerY-handLength×cos(θ)(其中θ是指针和竖直⽅向12点的夹⾓)因为⼀分钟有60秒,所以第2个指针的⾓度是:second×(2π/60)分钟的位置由分钟和秒钟来决定。
包含秒数的确切分钟数是minu+second/60。
例如,如时间是3分30秒,那么总的分钟数就是3.5。
由于⼀⼩时有60分钟,因此分针的⾓度是: (minute+second/60)×(2π/12)由于⼀个圆被分为12个⼩时,所以时针的⾓度是: (hour+minute/60+second/(60×60))×(2π/12)为了简化计算,在计算分针和时针⾓度的时候,可以忽略秒针,因为它们数字太⼩,基本可以忽略。
因此,秒针、分针以及时针的端点可以如下计算:secondX = centerX + secondHandLength × sin(second × (2π/60))secondY = centerY - secondHandLength × cos(second × (2π/60))minuteX = centerX + minuteHandLength × sin(minute × (2π/60))minuteY = centerY - minuteHandLength × cos(minute × (2π/60))hourX = centerX + hourHandLength × sin((hour+minute/60) × (2π/12))hourX = centerX + hourHandLength × sin((hour+minute/60) × (2π/12))这样就得到了ClockPane类的实现程序:package pany;import yout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.shape.Line;import javafx.scene.text.Text;import java.util.Calendar;import java.util.GregorianCalendar;public class ClockPane extends Pane{private int hour;private int minute;private int second;private double w=250,h=250;public ClockPane() {setCurrentTime();}public ClockPane(int hour,int minute,int second) {this.hour=hour;this.minute=minute;this.second=second;paintClock();}public int getHour() {return hour;}public void setHour(int hour) {this.hour=hour;paintClock();}public int getMinute() {return minute;}public void setMinute(int minute) {this.minute=minute;paintClock();}public int getSecond() {return second;}public void setSecond(int second) {this.second=second;paintClock();}public double getW() {return w;}public void setW(double w) {this.w=w;paintClock();}public double getH() {return h;}public void setH(double h) {this.h=h;paintClock();}public void setCurrentTime() {Calendar calendar=new GregorianCalendar();this.hour=calendar.get(Calendar.HOUR_OF_DAY);this.minute=calendar.get(Calendar.MINUTE);this.second=calendar.get(Calendar.SECOND);paintClock();}protected void paintClock() {double clockRadius=Math.min(w,h)*0.8*0.5;double centerX=w/2;double centerY=h/2;Circle circle=new Circle(centerX,centerY,clockRadius);circle.setFill(Color.WHITE);circle.setStroke(Color.BLACK);Text t1=new Text(centerX-5,centerY-clockRadius+12,"12");Text t2=new Text(centerX-clockRadius+3,centerY+5,"9");Text t3=new Text(centerX+clockRadius-10,centerY+3,"3");Text t4=new Text(centerX-3,centerY+clockRadius-3,"6");double sLength=clockRadius*0.8;double scondX=centerX+sLength*Math.sin(second*(2*Math.PI/60)); double scondY=centerY-sLength*Math.cos(second*(2*Math.PI/60)); Line sline=new Line(centerX,centerY,scondX,scondY);sline.setStroke(Color.RED);double mLength=clockRadius*0.65;double minuteX=centerX+mLength*Math.sin(minute*(2*Math.PI/60)); double minuteY=centerY-mLength*Math.cos(minute*(2*Math.PI)/60); Line mline=new Line(centerX,centerY,minuteX,minuteY);mline.setStroke(Color.BLUE);double hLength=clockRadius*0.5;double hourX=centerX+hLength*Math.sin((hour%12+minute/60.0)*(2*Math.PI/12));double hourY=centerY-hLength*Math.cos((hour%12+minute/60)*(2*Math.PI/12));Line hline=new Line(centerX,centerY,hourX,hourY);hline.setStroke(Color.GREEN);getChildren().clear();getChildren().addAll(circle,t1,t2,t3,t4,sline,mline,hline);}}对程序的简要解读:①Java API的GregorianCalendar类可以使⽤它的⽆参构造⽅法来商城⼀个具有当前时间的Calendar实例。
闹钟 源代码

99. P2 = 7;
100. Delay(2);
101.}
102./********************************************************************
143. s = 0;
144. break;
145. default:
146. hour = h;
40.void Time0_Init()
41.{
42. TMOD = 0x01;
43. IE = 0x82;
44. TH0 = 0x4c;
45. TL0 = 0x0 Delay(60);
160.}
161./********************************************************************
162.* 名称 : SetClock()
163.* 功能 : 设置闹钟时间
164.* 输入 : 无
17.sbit KEY1 = P3^2;
18.sbit KEY2 = P3^3;
19.sbit KEY3 = P3^4;
20.sbit BELL = P1^2;
21.
22./********************************************************************
165.* 输出 : 无
166.***********************************************************************/
JAVA课程设计 闹钟的设计与实现项目报告 附源代码

Java 设计报告书课程名称:JAVA语言程序设计设计题目:闹钟的设计与实现院系:计算机科学与信息工程系学生姓名:学号:专业班级:指导教师:许研2010 年12 月28 日目录一、题目描述 (1)二、设计思路 (1)三、运行结果 (5)四、源代码 (6)五、总结 (10)六、参考文献 (10)闹钟的设计与实现一、题目描述:结合JAVA图形界面的知识设计一个闹钟二、设计思路1、设计要求:编写闹钟钟程序,要求画出时钟面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。
2、算法基本描述:本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。
3、设计思想与内容1、画出类的UML简图Clock类:Clock类中的变量ri, shi, fen, miao, dangqian, guanji: JLabe lqueding, dakai: JButtonmusic, RI, SHI, FEN, MIAO: JTextFieldh = 0, f = 0, m = 0, r = 0 :intFo, foo: booleansoumd1: public AudioClipClock类中的函数public clock()public static void main(String agrs[])public void run()2、各方法功能描述列表Clock类方法功能Main()执行main函数Clock()Clock类的构造函数,用于对时钟界面的初始化Run()用于对时钟的动态显示的执行,并判断是否设定了闹钟时间,若当前时间与设定的时间相等则播放选定的音乐3、主要模块算法描述(1)当前动态时间的显示的设计与实现。
利用JAVA实现一个时钟的小程序

JAVA课程项目报告项目题目:利用JAVA实现一个小时钟的程序专业班级:10软件工程利用JAVA实现一个时钟的小程序1.软件开发的需求分析在当今的信息时代,时钟已经成为人们生活中必不可少的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。
使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。
此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。
使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
2.具体实现2.1设计思路Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
这将减少平常出错的50%。
而且,Java很小,整个解释器只需215K的RAM。
因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。
本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。
程序实现了小时钟的基本功能。
2.2设计方法在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。
JAVA数字时钟源程序代码

import java.awt.*;import java.util.*;import javax.swing.*;//数字时钟public class ClockDemo extends JFrame implements Runnable{Thread clock;public ClockDemo(){super("数字时钟"); //调用父类构造函数setFont(new Font("Times New Roman",Font.BOLD,60)); //设置时钟的显示字体start(); //开始进程setSize(280,100); //设置窗口尺寸setVisible(true); //窗口可视this.setLocation(440,330);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序}public void start(){ //开始进程if (clock==null){ //如果进程为空值clock=new Thread(this); //实例化进程clock.start(); //开始进程}}public void run(){ //运行进程while (clock!=null){repaint(); //调用paint方法重绘界面try{Thread.sleep(1000); //线程暂停一秒(1000毫秒)}catch (InterruptedException ex){ex.printStackTrace(); //输出出错信息}}}public void stop(){ //停止进程clock=null;}public void paint(Graphics g){ //重载组件的paint方法Graphics2D g2=(Graphics2D)g; //得到Graphics2D对象Calendar now=new GregorianCalendar(); //实例化日历对象String timeInfo=""; //输出信息int hour=now.get(Calendar.HOUR_OF_DAY); //得到小时数int minute=now.get(Calendar.MINUTE); //得到分数int second=now.get(Calendar.SECOND); //得到秒数if (hour<=9)timeInfo+="0"+hour+":"; //格式化输出elsetimeInfo+=hour+":";if (minute<=9)timeInfo+="0"+minute+":";elsetimeInfo+=minute+":";if (second<=9)timeInfo+="0"+second;elsetimeInfo+=second;g.setColor(Color.orange); //设置当前颜色为白色Dimension dim=getSize(); //得到窗口尺寸g.fillRect(0,0,dim.width,dim.height); //填充背景色为白色g.setColor(Color.black); //设置当前颜色为橙色g.drawString(timeInfo,20,80); //显示时间字符串}public static void main(String[] args){new ClockDemo();}}。
电子闹钟源程序

电子闹钟源程序模块一#include <reg51.h>extern void InitT0(void);extern void Init8255(void);extern unsigned char DispBuf[6];extern bit xTim,xKey;extern void KeyPro(void);extern unsigned char KeySts;extern void Delay(unsigned int ms) ;unsigned char sec,min,hour;Unsigned char code table[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86, 0x8E};sbit P1_1=P1^1;void TimUpdate(void){if(++sec==60){sec=0;if(++min==60){min=0;if(++hour==24){hour=0;}}}}void DisplayTim(){DispBuf[0]=table[sec % 10];DispBuf[1]=table[sec / 10];DispBuf[2]=table[min % 10];DispBuf[3]=table[min / 10];DispBuf[4]=table[hour % 10];DispBuf[5]=table[hour / 10];}void main(void){unsigned char i,x, xi ;x=1;for (i=0;i<6;i++) DispBuf[i]=0xFF;sec=0;min=0;hour=0;InitT0();Init8255();KeySts=0;while(1){if (xTim && (KeySts == 0)){xTim=0;TimUpdate();DisplayTim();// P1= ~x;// x<<=1;//if (x==0) x=1;}if (xKey){xKey =0;KeyPro();}if((sec==0)&&(min==0)){ xi=hour;if (xi==0){ xi=24; }while(xi--){ P1_1=1;DisplayTim();Delay(500);P1_1=0;DisplayTim();Delay(500);sec++;}}}}模块二#include <reg51.h>unsigned char xdata PA _at_ 0x8000; unsigned char xdata PB _at_ 0x8001; unsigned char xdata PC _at_ 0x8002; unsigned char xdata CtrlW _at_ 0x8003;unsigned char pLED;unsigned char DispBuf[6];unsigned char Digit[6]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; unsigned char count;bit xTim,xKey;unsigned char KeyV al;void InitT0(void){pLED=0;xTim=0;count=0;TMOD=(TMOD&0xF0)|0x01;TH0=0xF1;TL0=0x00;TR0=1;ET0=1;EA=1;}void Delay(unsigned int ms){int i,j;for(i=0;i<ms;i++){for(j=0;j<114;j++){}}}void Init8255(void){Delay(1000);CtrlW=0x81;}void T0Srv(void) interrupt 1 using 1{TH0=0xF1;PA=0xFF;PB=Digit[pLED];PA=DispBuf[pLED];if(++pLED==6) pLED=0;count++;if((count&0x03)==0){KeyV al=PC & 0x0F;xKey=1;P1=KeyV al;}if(count==240){count=0;xTim=1;}}模块三#define SET 0x01#define LR 0x02#define UD 0x04#define OK 0x08#include <reg51.h>extern unsigned char sec,min,hour; extern unsigned char code table[16]; extern unsigned char DispBuf[6]; unsigned char EditSec,EditMin,EditHour; extern unsigned char KeyV al; unsigned char CurKey,LastKey; unsigned char KeySts;void DisplayEdit(){DispBuf[0]=table[EditSec%10]; DispBuf[1]=table[EditSec/10];DispBuf[2]=table[EditSec%10]; DispBuf[3]=table[EditSec/10];DispBuf[4]=table[EditSec%10]; DispBuf[5]=table[EditSec/10];DispBuf[6-KeySts]&=0x7F;}void Copy(){sec=EditSec;min=EditMin;hour=EditHour;}void KeyPro(void){unsigned char KeyPressed;LastKey=CurKey;CurKey=KeyV al;KeyPressed=CurKey^LastKey;if(KeyPressed==0) return;if(CurKey==0x0F) return;switch(KeySts){case 0:if(KeyPressed==SET){KeySts++;EditSec=sec;EditMin=min;EditHour=hour;}break;case 1:switch(KeyPressed){case LR: KeySts++;break;case UD: EditHour +=10;if(EditHour>=24) EditHour-=24; break;case OK: Copy();KeySts=0;break;}break;case 2:switch(KeyPressed){case LR: KeySts++;break;case UD: EditHour++;if(EditHour>=24) EditHour-=24; break;case OK: Copy();KeySts=0;break;}break;case 3:switch(KeyPressed){case LR: KeySts++;break;case UD:EditMin+=10;if(EditMin>=60) EditMin-=60; break;case OK:Copy();KeySts=0;break;}break;case 4:switch(KeyPressed){case LR: KeySts++;break;case UD: EditMin++;if(EditMin>=60) EditMin-=60; break;case OK: Copy();KeySts=0;break;}break;case 5:switch(KeyPressed){case LR: KeySts++;break;case UD: EditSec+=10;if(EditSec>=60) EditSec-=60; break;case OK: Copy();KeySts=0;break;}break;case 6:switch(KeyPressed){case LR:KeySts=1;break;case UD:EditSec++;if(EditSec>=60) EditSec-=60; break;case OK: Copy();KeySts=0;break;}break;default:KeySts=0;}DisplayEdit();}。
电子时钟工具的程序设计及代码示例

电子时钟工具的程序设计及代码示例为满足现代生活的需求,电子时钟成为人们生活中的常见工具。
除了具备实时显示时间的功能外,电子时钟还可以根据用户需求进行各种定制,如显示日期、倒计时、闹钟等功能。
本文将探讨电子时钟的程序设计方法,并提供一个简单的代码示例。
一、程序设计方法在进行电子时钟的程序设计前,我们需要确定以下几个关键因素:1. 使用的编程语言:根据实际情况选择合适的编程语言,如C++、Java、Python等。
2. GUI框架:确定使用什么图形界面框架,如Qt、Tkinter等。
3. 实时更新:确定时间的实时更新方式,可以利用计时器、循环等方式进行时间更新。
4. 用户交互:考虑用户是否需要与电子时钟进行交互,如设置闹钟、选择日期等。
二、代码示例以下是一个基于Python和Tkinter的电子时钟代码示例,代码注释中详细说明了每个函数的功能和实现方法:```pythonimport tkinter as tkfrom datetime import datetimedef update_time():# 获取当前时间current_time = datetime.now().strftime("%H:%M:%S")# 更新时间标签time_label.config(text=current_time)# 每隔1秒更新一次时间time_label.after(1000, update_time)# 创建窗口window = ()window.title("电子时钟")# 创建时间标签time_label = bel(window, font=("Arial", 100), bg="white") time_label.pack(pady=50)# 更新时间update_time()# 运行窗口主循环window.mainloop()```以上代码创建了一个简单的窗口,使用标签实时显示当前时间。
Java模拟时钟制作案例

美化指针
调用AffineTransform
public AffineTransform sc =new AffineTransform(); sc.setToRotation(Math.PI/30f*(s1-15),125,125); g2.fill(tick_s.createTransformedShape(sc));
程序代码
主类
程序代码
程序代码
运行效果
运行效果
面板刻度
绘制刻度
l1=new Line2D.Double[60]; for(int i=0 ;i<l1.length;i++) { double b[]=new double[4]; int j; if(i%5==0){ if(i%15==0){ j=50; }else { j=60; }
运行效果程序代码程序代码程序代码程序代码程序代码代码优化与改进以上的代码已经能基本完成时钟的功能
Java模拟时钟制 作案例
Java开发实例
需求分析
模拟时钟,把它放在程序中可以给人一种清 新的感觉。比起数字时钟来说,有一定的真 实感怀旧情结。看到秒针一下一下的转动, 时时提醒,时间在不断流逝,要我们珍惜时 间。 子在川上曰:逝者如斯夫。
坐标的转换,使用方法
调用方法:
p0=xy(125,125,75,s1*6); s.x1=p0.getX(); s.y1=p0.getY(); p0=xy(125,125,65,m1*6); m.x1=p0.getX(); m.y1=p0.getY(); p0=xy(125,125,55,(h1*30+m1/2f)); h.x1=p0.getX(); h.y1=p0.getX();
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package pkg110;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.Timer;/**** @author Administrator*/public class Clock extends JFrame implements ActionListener{ public final int HEIGTH = 200, L0 = 50, T0 = 50,N=8;public final double RAD = Math.PI / 180.0;int x, y, old_X, old_Y, r, x0, y0, w, h, ang;int sdo, mdo, hdo, old_M, old_H, hh, mm, ss;int delay = 1000;Calendar now;String st, alarm, Items1, Items2,str[];JButton jb;JComboBox jc1, jc2, jc3;JLabel jl1, jl2, jl3, jl4;JTextField jtf1, jtf2, time;JPanel jp1, jp2, jp3;Timer timer;TimeZone tz = TimeZone.getTimeZone("JST");Toolkit toolkit=Toolkit.getDefaultToolkit();/*** @param args the command line arguments*/public static void main(String[] args) {// TODO code application logic hereClock cp = new Clock();cp.setVisible(true);}Clock() {super("闹钟");setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setSize(400,550);setVisible(true);Container contentPane = getContentPane();jp2 = new JPanel();jl1 = new JLabel("闹铃时间");jl1.setFont(new Font("楷体", Font.BOLD, 18));time = new JTextField("00:00",10);alarm = time.getText();jb = new JButton("修改闹铃时间");jb.addActionListener(this);jb.setActionCommand("CC");jp2.add(jl1);jp2.add(time);jp2.add(jb);contentPane.add(jp2, BorderLayout.SOUTH);ClockPanel clock = new ClockPanel();contentPane.add(clock, BorderLayout.CENTER);ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) {repaint();}};new Timer(delay, taskPerformer).start();}Color waiquan= Color.magenta;Color bianxian= Color.black;Color biaopan= Color.yellow;Color juxing= Color.yellow;Color miaozhen= Color.red;Color fenzhen= Color.red;Color shizhen= Color.red;public class ClockPanel extends JPanel {public void paint(Graphics g) {h = getSize().height - 200;g.setColor(waiquan);g.fillOval(L0 + 30, T0 + 30, h - 60, h - 60);g.setColor(bianxian);g.drawOval(L0 + 31, T0 + 31, h - 62, h - 62);g.setColor(biaopan);g.fillOval(L0 + 50, T0 + 50, h - 100, h - 100);g.setColor(bianxian);g.drawOval(L0 + 51, T0 + 51, h - 102, h - 102);r = h / 2 - 30;x0 = 30 + r - 5 + L0;y0 = 30 + r - 5 - T0;ang = 60;for (int i = 1; i <= 12; i++) {x = (int) ((r - 10) * Math.cos(RAD * ang) + x0); y = (int) ((r - 10) * Math.sin(RAD * ang) + y0);g.drawString("" + i, x, h - y);ang -= 30;}x0 = 30 + r + L0;y0 = 30 + r + T0;now = Calendar.getInstance();hh = now.get(Calendar.HOUR_OF_DAY);mm = now.get(Calendar.MINUTE);ss = now.get(Calendar.SECOND);g.setColor(juxing);g.fillRect(110,350, 150, 30);g.setColor(fenzhen);if (hh < 10)st = "0" + hh;elsest = "" + hh;if (mm < 10)st = st + ":0" + mm;elsest = st + ":" + mm;if(alarm.equals(st)){if(toolkit!=null)toolkit.beep();else {}}if (ss < 10)st = st + ":0" + ss;elsest = st + ":" + ss;{g.setFont(new Font("华文楷体", Font.BOLD, 16));g.drawString("当前时间:" + st, 115,370);}sdo = 90 - ss * 6;mdo = 90 - mm * 6;hdo = 90 - hh * 30 - mm / 2;if (old_X > 0) {g.setColor(biaopan);} else {old_M = mdo;old_H = hdo;}g.setColor(miaozhen);x = (int) ((r - 26) * Math.cos(RAD * sdo) + x0);y = (int) ((r - 26) * Math.sin(RAD * sdo) + y0) - 2 * T0;g.drawLine(x0, y0, x, (h - y));old_X = x;old_Y = y;if (mdo != old_M) {g.setColor(biaopan);old_M = mdo;}if (hdo != old_H) {g.setColor(biaopan);old_H = hdo;}g.setColor(fenzhen);x = (int) ((r - 45) * Math.cos(RAD * mdo) + x0);y = (int) ((r - 45) * Math.sin(RAD * mdo) + y0) - 2 * T0;g.drawLine(x0, y0, x, (h - y));g.setColor(shizhen);x = (int) ((r - 70) * Math.cos(RAD * hdo) + x0);y = (int) ((r - 70) * Math.sin(RAD * hdo) + y0) - 2 * T0;g.drawLine(x0, y0, x, (h - y));}}// 闹铃时间的判断及实现// 闹铃声音的实现public void actionPerformed(ActionEvent e) {if (e.getActionCommand()=="CC") {int newHou, newMin;char c;String getTime = JOptionPane.showInputDialog(this, "请输入闹铃时间格式如:", "00:00");repaint();if(getTime==null)System.out.println(getTime);judge: if (getTime != null) {System.out.println(getTime);if (getTime.length() != 5) {JOptionPane.showMessageDialog(time, "格式错误\n请按格式输入5位数字", "Error",JOptionPane.ERROR_MESSAGE);repaint();break judge;}for (int i = 0; i < (getTime.length()); i++) {c = getTime.charAt(i);if (i == 2 && !Character.isDigit(c))continue;if (i != 2 && !Character.isDigit(c)) {JOptionPane.showMessageDialog(this, "格式错误\n请按格式输入5位数字", "Error",JOptionPane.ERROR_MESSAGE);repaint();break judge;}}char[] hour = { getTime.charAt(0), getTime.charAt(1) };char[] minute = { getTime.charAt(3), getTime.charAt(4) };newHou = Integer.parseInt(String.valueOf(hour));newMin = Integer.parseInt(String.valueOf(minute));if (newHou >= 24 || newHou < 0) {JOptionPane.showMessageDialog(this, "格式错误\n小时应该是不小于0不大于23的正数","Error", JOptionPane.ERROR_MESSAGE);repaint();break judge;}if (newMin >= 60 || newHou < 0) {JOptionPane.showMessageDialog(this, "格式错误\n分钟应该是小于60的正数", "Error",JOptionPane.ERROR_MESSAGE);repaint();break judge;}new SetTime(newHou, newMin);}}toolkit=Toolkit.getDefaultToolkit();}class SetTime {String Hour;String Minute;public SetTime() { }public SetTime(int hour, int minute) {if (hour < 10) {Hour = "0" + String.valueOf(hour);} else {Hour = "" + String.valueOf(hour);}if (minute < 10) {Minute = "0" + String.valueOf(minute);} else {Minute = "" + String.valueOf(minute);}alarm = Hour + ":" + Minute;time.setText(alarm);repaint();}}}。