import java.awt.*
import java.applet.*
import java.text.*
import java.awt.event.*
public class Alarm extends Applet implements Runnable
{
Thread timer=null//创建线程timer
Image gif1//clockp:闹钟的外壳,闹铃和报时物
boolean setflag=false,stopflag=false,cancelflag=false
Panel setpanel
//获取声音文件
AudioClip ring=getAudioClip(getCodeBase(), "1.mid")
Button setbutton=new Button("SET")
Button cancelbutton=new Button("CANCEL")
Button stopbutton=new Button("STOP")
//响应按钮事件
private ActionListener setli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setflag=true
}
}
private ActionListener cancelli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setflag=true
}
}
private ActionListener stopli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ring.stop()
/渣局/清除的方法
//g.clearRect(83,280,20,30)
}
}
Label note1=new Label("Alarm clock:")
//GregorianCalendar提供的是一个日历式的东东,上面又多了很多的参数,是方便 *** 作了不少。而Date类的功能远不及其,求个和日期有联系的还要自己计算。
GregorianCalendar cal=new GregorianCalendar()
GregorianCalendar cal2=new GregorianCalendar()
SimpleDateFormat df=new SimpleDateFormat("yyyy MM dd HH:mm:ss")//设置时间格式
Date dummy=new Date()//生成Data对象
String lastdate=df.format(dummy)
Font F=new Font("TimesRoman",Font.PLAIN,14)//设置字体格式
Date dat=null
Date timeNow
Color fgcol=Color.blue
Color fgcol2=Color.darkGray
Color backcolor=Color.blue
Label hlabel2,mlabel2,slabel2//显示时间单位时所用的标签(时、分、秒)
int i
int s,m,h
TextField sethour,setmin,setsec//显示当前时间文本框和定时文本框
//在Applet程序中,首先自动调用初始化完成必要的初始化运梁老工作,紧接着自动调用start,在进入执行程序和返回到该页面时被调用,而从旁升该页面转到别的页面时,stop被调用,关闭浏览器时,执行destroy。
public void init()//初始化方法
{
int fieldx=50,fieldy1=120,fieldy2=220,fieldw=30,fieldh=20,space=50//显示时间和定时文本框的定位参数
setLayout(null)//将布局管理器初始化为null
setpanel=new Panel()
setpanel.setLayout(null)
setpanel.add(note1)
note1.setBounds(30,100,60,20)
note1.setBackground(backcolor)
note1.setForeground(Color.black)
//定时用的文本框(时、分、秒)
sethour=new TextField("00",5)
setmin=new TextField("00",5)
setsec=new TextField("00",5)
hlabel2=new Label()
mlabel2=new Label()
slabel2=new Label()
//定时的小时文本框的位置、大小
setpanel.add(sethour)
sethour.setBounds(fieldx,fieldy2,fieldw,fieldh)
sethour.setBackground(Color.white)
//在文本框后加入单位“时”
setpanel.add(hlabel2)
hlabel2.setText("h")
hlabel2.setBackground(backcolor)
hlabel2.setForeground(Color.black)
hlabel2.setBounds(fieldx+fieldw+3,fieldy2,14,20)
fieldx=fieldx+space
//定时的分钟文本框的位置、大小
setpanel.add(setmin)
setmin.setBounds(fieldx,fieldy2,fieldw,fieldh)
setmin.setBackground(Color.white)
//在文本框后加入单位“分”
setpanel.add(mlabel2)
mlabel2.setText("m")
mlabel2.setBackground(backcolor)
mlabel2.setForeground(Color.black)
mlabel2.setBounds(fieldx+fieldw+3,fieldy2,14,20)
fieldx=fieldx+space
//定时的秒文本框的位置、大小
setpanel.add(setsec)
setsec.setBounds(fieldx,fieldy2,fieldw,fieldh)
setsec.setBackground(Color.white)
//在文本框后加入单位“秒”
setpanel.add(slabel2)
slabel2.setText("s")
slabel2.setBackground(backcolor)
slabel2.setForeground(Color.black)
slabel2.setBounds(fieldx+fieldw+3,fieldy2,14,20)
//设置闹钟控制按钮(on,off)
setpanel.add(cancelbutton)
setpanel.add(setbutton)
setpanel.add(stopbutton)
cancelbutton.setBounds(90,180,40,20)
setbutton.setBounds(140,180,40,20)
stopbutton.setBounds(522,180,40,20)
setbutton.addActionListener(setli)
cancelbutton.addActionListener(cancelli)
stopbutton.addActionListener(stopli)
stopbutton.setVisible(false)
//将面板加入当前容器中,并设置面板的大小和背景色
add(setpanel)
setpanel.setBounds(300,1,250,420)
setpanel.setBackground(backcolor)
/*int xcenter,ycenter,s,m,h
//闹钟中心点所在位置
xcenter=145
ycenter=162
s=(int)cal.get(Calendar.SECOND)
m=(int)cal.get(Calendar.MINUTE)
h=(int)cal.get(Calendar.HOUR_OF_DAY)
//初始化指针位置
lastxs=(int)(Math.cos(s*3.14f/30-3.14f/2)*30+xcenter)
lastys=(int)(Math.sin(s*3.14f/30-3.14f/2)*30+ycenter)
lastxm=(int)(Math.cos(m*3.14f/30-3.14f/2)*25+xcenter)
lastym=(int)(Math.sin(m*3.14f/30-3.14f/2)*25+ycenter)
lastxh=(int)(Math.cos((h*30+m/2)*3.14f/180-3.14f/2)*18+xcenter)
lastyh=(int)(Math.sin((h*30+m/2)*3.14f/180-3.14f/2)*18+ycenter)
lasts=s*/
MediaTracker mt=new MediaTracker(this)//为给定组件创建一个跟踪媒体的MediaTracker对象,把图片添加到被跟踪的图片组
//Java允?Sapplet??HTML所在的位置(decument base)下?d?Y料,也允?Sapplet?钠涑淌酱a所在的位置(code base)下?d?Y料。藉由呼叫getDocumentBase()?cgotCodeBase()可得到URL物件。?@些函?????湍阏业侥阆胂螺d的?n案的位置
//clockp=getImage(getDocumentBase(),"11.png")
gif1=getImage(getCodeBase(),"2.gif")
//i为id号
mt.addImage(gif1,i++)
try
{
mt.waitForAll()
}
catch(InterruptedException e)
{}//等待加载结束
resize(600,420)//设置窗口大小
}
//窗口显示有改变的时候调用paint
public void paint(Graphics g)
{//重写paint()方法
int xh,yh,xm,ym,xs,ys,strike_times
int xcenter,ycenter
String today
xcenter=148
ycenter=186
dat=new Date()
//用当前时间初始化日历时间
cal.setTime(dat)
//读取当前时间
s=(int)cal.get(Calendar.SECOND)
m=(int)cal.get(Calendar.MINUTE)
h=(int)cal.get(Calendar.HOUR_OF_DAY)
//换一种时间表达形式
today=df.format(dat)
//指针位置
xs=(int)(Math.cos(s*3.14f/30-3.14f/2)*30+xcenter)
ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*30+ycenter)
xm=(int)(Math.cos(m*3.14f/30-3.14f/2)*25+xcenter)
ym=(int)(Math.sin(m*3.14f/30-3.14f/2)*25+ycenter)
xh=(int)(Math.cos((h*30+m/2)*3.14f/180-3.14f/2)*12+xcenter)
yh=(int)(Math.sin((h*30+m/2)*3.14f/180-3.14f/2)*12+ycenter)
//设置字体和颜色
g.setFont(F)
//前景色
g.setColor(getBackground())//取背景色的
g.drawImage(gif1,75,110,this)
//以数字方式显示年、月、日和时间
g.drawString(today,55,415)
//画指针
g.drawLine(xcenter,ycenter,xs,ys)
g.drawLine(xcenter,ycenter-1,xm,ym)//(x1,y1,x2,y2)
g.drawLine(xcenter-1,ycenter,xm,ym)
g.drawLine(xcenter,ycenter-1,xh,yh)
g.drawLine(xcenter-1,ycenter,xh,yh)
int timedelta//记录当前时间与闹铃定时的时差
Integer currh,currm,currs//分别记录当前的时、分、秒
Date dat2=new Date()
cal2.setTime(dat2)
//读取当前时间
currh=(int)cal2.get(Calendar.SECOND)
currm=(int)cal2.get(Calendar.MINUTE)
currs=(int)cal2.get(Calendar.HOUR_OF_DAY)
//这样做的话说我API已过时
//timeNow=new Date()
//currh=new Integer(timeNow.getHours())
//currm=new Integer(timeNow.getMinutes())
//currs=new Integer(timeNow.getSeconds())
if(setflag)
{ //判断是否设置了闹钟
//判断当前时间是否为闹钟所定的时间
if((currh.intValue()==Integer.valueOf(sethour.getText()).intValue())&&(currm.intValue()==Integer.valueOf(setmin.getText()).intValue())&&(currs.intValue()==Integer.valueOf(setsec.getText()).intValue()))
{
ring.play()
g.drawImage(gif1,83,280,this)
stopbutton.setVisible(true)
}
timedelta=currm.intValue()*60+currs.intValue()-Integer.valueOf(setmin.getText()).intValue()*60-Integer.valueOf(setsec.getText()).intValue()
if((timedelta>=30))
{
//若当前时间与闹钟相差时间超过30秒,闹钟自动停
ring.stop()
//清除的方法
g.clearRect(83,280,20,30)
}
}
dat=null
}
public void start()
{
if(timer==null)
{
timer=new Thread(this)//将timer实例化
timer.start()
}
}
public void stop()
{
timer=null
}
//给创建线程后start之后自动执行的函数
public void run()
{
//在run()方法中,调用repaint()方法,以重绘小程序区,进行时钟显示的更新。接着调用sleep方法让当前线程(也就是我们创建的线程clockthread)睡眠1000毫秒,因为我们每秒钟要更新一下显示,所以让它睡眠1秒
while(timer!=null)
{
try
{
timer.sleep(1000)
}
catch(InterruptedException e)
{}
//调用repaint时,会首先清除掉paint方法之前的画的内容,再调用paint方法
repaint()//刷新画面
}
timer=null
}
//当AWT接收到一个applet的重绘请求时,它就调用applet的 update(),默认地,update() 清除applet的背景,然后调用 paint()。重载 update(),将以前在paint()中的绘图代码包含在update()中,从而避免每次重绘时将整个区域清除
//有两种方法可以明显地减弱闪烁:重载 update()或使用双缓冲。
//使用双缓冲技术:另一种减小帧之间闪烁的方法是使用双缓冲,它在许多动画Applet中被使用。其主要原理是创建一个后台图像,将需要绘制的一帧画入图像,然后调用DrawImage()将整个图像一次画到屏幕上去;好处是大部分绘制是离屏的,将离屏图像一次绘至屏幕上比直接在屏幕上绘制要有效得多,大大提高做图的性能。
// 双缓冲可以使动画平滑,但有一个缺点,要分配一张后台图像,如果图像相当大,这将需要很大一块内存;当你使用双缓冲技术时,应重载 update()。
public void update(Graphics g)
{
Image offscreen_buf=null
//采用双缓冲技术的update()方法
if(offscreen_buf==null)
offscreen_buf=createImage(600,420)
Graphics offg=offscreen_buf.getGraphics()
offg.clipRect(1,1,599,419)
paint(offg)
Graphics ong=getGraphics()
ong.clipRect(1,1,599,419)
ong.drawImage(offscreen_buf,0,0,this)
}
/** Creates a new instance of AlarmClock */
}
import java.awt.*import java.awt.event.*
import java.util.*
import javax.swing.*
import javax.swing.Timer
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
JMenu jm1, jm2, jm3, jm4
JMenuBar jmb
JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7, jmi8, jmi9,jmi10
JTextField jtf1, jtf2, time
JPanel jp1, jp2, jp3
Timer timer
TimeZone tz = TimeZone.getTimeZone("JST")
Toolkit toolkit=Toolkit.getDefaultToolkit()
/**
* <br>
* 方法说明:实现ActionListener类必须过载的方法
*/
public static void main(String[] args) {
Clock cp = new Clock()
cp.setVisible(true)
}
Clock() {
super("Java闹钟!")
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
setSize(550, 700)
setVisible(true)
Container contentPane = getContentPane()
jp2 = new JPanel()
jmb = new JMenuBar()
jm1 = new JMenu("背景颜色设置 ", true)
jmi1 = new JMenuItem("外圈颜色")
jmi1.addActionListener(this)
jmi1.setActionCommand("color1")
jm1.add(jmi1)
jmi2 = new JMenuItem("闹钟边线颜色")
jmi2.addActionListener(this)
jmi2.setActionCommand("color2")
jm1.add(jmi2)
jmi3=new JMenuItem("底盘颜色")
jmi3.addActionListener(this)
jmi3.setActionCommand("color3")
jm1.add(jmi3)
jmi4=new JMenuItem("系统时间背静颜色")
jmi4.addActionListener(this)
jmi4.setActionCommand("color4")
jm1.add(jmi4)
jmb.add(jm1)
jm2 = new JMenu("指针颜色设置 "洞友, true)
jmi5 = new JMenuItem("缺颤迹秒针颜色")
jmi5.addActionListener(this)
jmi5.setActionCommand("color5")
jm2.add(jmi5)
jmi6 = new JMenuItem("分伏并针颜色")
jmi6.addActionListener(this)
jmi6.setActionCommand("color6")
jm2.add(jmi6)
jmi7 = new JMenuItem("时针颜色")
jmi7.addActionListener(this)
jmi7.setActionCommand("color7")
jm2.add(jmi7)
jmb.add(jm2)
jm3 = new JMenu("闹铃声音设置 ", true)
jmi8 = new JMenuItem("响铃1")
jmi8.addActionListener(this)
jmi8.setActionCommand("ring1")
jm3.add(jmi8)
jmi9 = new JMenuItem("静音")
jmi9.addActionListener(this)
jmi9.setActionCommand("ring2")
jm3.add(jmi9)
jmb.add(jm3)
jm4 = new JMenu("帮助", true)
jmi10=new JMenuItem("使用说明")
jmi10.addActionListener(this)
jmi10.setActionCommand("help")
jm4.add(jmi10)
jmb.add(jm4)
jp2.add(jmb)
contentPane.add(jp2, BorderLayout.NORTH)
jp3 = new JPanel()
jl1 = new JLabel("闹铃时间")
jl1.setFont(new Font("楷体_GB2312", Font.BOLD, 18))
time = new JTextField("00:00", 5)
alarm = time.getText()
jb = new JButton("修改闹铃时间")
jb.addActionListener(this)
jb.setActionCommand("CC")
jp3.add(jl1)
jp3.add(time)
jp3.add(jb)
contentPane.add(jp3, 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()
}
/**
* <br>
* 方法说明:绘制图形
*/
Color C1 = Color.lightGray// 外圈颜色
Color C2 = Color.black// 边线颜色
Color C3 = Color.magenta// 内盘颜色
Color C4 = Color.blue// 背景颜色
Color C5 = Color.yellow// 秒针颜色
Color C6 = Color.green// 分针颜色
Color C7 = Color.red//时针颜色
public class ClockPanel extends JPanel {
public void paint(Graphics g) {
h = getSize().height - 200
// 绘制圆形
g.setColor(C1)
g.fillOval(L0 + 30, T0 + 30, h - 60, h - 60)
g.setColor(C2)
g.drawOval(L0 + 31, T0 + 31, h - 62, h - 62)
g.setColor(C3)
g.fillOval(L0 + 50, T0 + 50, h - 100, h - 100)
g.setColor(C2)
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 = 1i <= 12i++) {
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
g.drawString("指针式时钟", 215, 200)
// 获取时间
now = Calendar.getInstance()
hh = now.get(Calendar.HOUR_OF_DAY)// 小时
mm = now.get(Calendar.MINUTE)// 分钟
ss = now.get(Calendar.SECOND)// 秒
g.setColor(C4)
g.fillRect(5, 550, 150, 30)// 填充的矩形
g.setColor(C6)
if (hh <10)
st = "0" + hh
else
st = "" + hh
if (mm <10)
st = st + ":0" + mm
else
st = st + ":" + mm
if(alarm.equals(st))
{
if(toolkit!=null)
toolkit.beep()
else {}
}
if (ss <10)
st = st + ":0" + ss
else
st = st + ":" + ss
{
g.setFont(new Font("华文楷体", Font.BOLD, 16))
g.drawString("系统时间:" + st, 10, 570)
}
// 计算时间和图形的关系
sdo = 90 - ss * 6
mdo = 90 - mm * 6
hdo = 90 - hh * 30 - mm / 2
// 擦除秒针
if (old_X >0) {
g.setColor(C3)
} else {
old_M = mdo
old_H = hdo
}
// 绘制秒针
g.setColor(C5)
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(C3)
old_M = mdo
}
if (hdo != old_H) {
g.setColor(C3)
old_H = hdo
}
// 绘制分针
g.setColor(C6)
x = (int) ((r - 50) * Math.cos(RAD * mdo) + x0)
y = (int) ((r - 50) * Math.sin(RAD * mdo) + y0) - 2 * T0
g.drawLine(x0, y0, x, (h - y))
// 绘制时针
g.setColor(C7)
x = (int) ((r - 90) * Math.cos(RAD * hdo) + x0)
y = (int) ((r - 90) * Math.sin(RAD * hdo) + y0) - 2 * T0
g.drawLine(x0, y0, x, (h - y))
} // end paint
}
// 闹铃时间的判断及实现
// 闹铃声音的实现
public void actionPerformed(ActionEvent e) {
// JMenuItem m = (JMenuItem) e.getSource()
if (e.getActionCommand() == "CC") {
int newHou, newMin
char c
String getTime = JOptionPane.showInputDialog(this, "请输入闹铃时间格式如:", "00:00")
repaint()
//如果撤消设置时间,就什么打印null
if(getTime==null)
System.out.println(getTime)
// dispose()
judge: if (getTime != null) {
//打印输入的设置的时间
System.out.println(getTime)
// 判断输入的是不是5位字符
if (getTime.length() != 5) {
JOptionPane.showMessageDialog(time, "格式错误\n请按格式输入5位数字", "Error",
JOptionPane.ERROR_MESSAGE)
repaint()
break judge
}
// 判断输入的是不是数字
for (int i = 0i <(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)
}
}
if (e.getActionCommand() == "ring1") {
toolkit=Toolkit.getDefaultToolkit()
}
if(e.getActionCommand() == "ring2"){
System.out.println("静音")
toolkit=null
}
if (e.getActionCommand() == "color1") {
String color
Color c
System.out.println("color1")
color = JOptionPane.showInputDialog(this, "请输入喜欢的外圈颜色(0--255)", "128")
if (color == null) {
} else {
if (Integer.parseInt(color) <0
|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的外圈颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C1 = c
}
}
}
if(e.getActionCommand() == "color2"){
String color
Color c
System.out.println("color2")
color = JOptionPane.showInputDialog(this, "请输入喜欢的边线颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的边线颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C2 = c
}
}
}
if(e.getActionCommand() == "color3"){
String color
Color c
System.out.println("color3")
color = JOptionPane.showInputDialog(this, "请输入喜欢的内盘颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的内盘颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C3 = c
}
}
}
if(e.getActionCommand() == "color4"){
String color
Color c
System.out.println("color4")
color = JOptionPane.showInputDialog(this, "请输入喜欢的背景颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的背景颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C4 = c
}
}
}
if(e.getActionCommand() == "color5"){
String color
Color c
System.out.println("color5")
color = JOptionPane.showInputDialog(this, "请输入喜欢的秒针颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的秒针颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C5 = c
}
}
}
if(e.getActionCommand() == "color6"){
String color
Color c
System.out.println("color6")
color = JOptionPane.showInputDialog(this, "请输入喜欢的分针颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的分针颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C6 = c
}
}
}
if(e.getActionCommand() == "color7"){
String color
Color c
System.out.println("color7")
color = JOptionPane.showInputDialog(this, "请输入喜欢的时针颜色(0--255)", "128")
if(color==null){}
else{if (Integer.parseInt(color) <0|| Integer.parseInt(color) >255)
JOptionPane.showInputDialog(this, "请输入喜欢的时针颜色(0--255)", "128")
else {
c = new Color(Integer.parseInt(color))
C7 = c
}
}
}
if(e.getActionCommand() == "help"){
String help
help = JOptionPane.showInputDialog(this, "输入quit退出该闹钟的使用", "这是运行在Java中的指针式时钟")
if(help.equals("quit"))
dispose()
else {}
// timer.restart()
}
}
class SetTime {
String Hour
String Minute
public SetTime() { }
public SetTime(int hour, int minute) {
// 当时间参数小于10的时候在前面添加字符0
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()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)