自己之前做过的一个:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
public class Clock extends JFrame implements ActionListener {
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;
JButton jb;
JMenuBar jmb;
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);
setVisible(true);
Container contentPane = getContentPane();
jmb = new JMenuBar();
jm1 = new JMenu("背景颜色设置 ", true);
jmi1 = new JMenuItem("外圈颜色");
jmi1.addActionListener(this);
jmi1.setActionCommand("color1");
jm1.add(jmi1);
jmb.add(jm1);
jmi10=new JMenuItem("使用说明");
jmi10.addActionListener(this);
jmi10.setActionCommand("help");
jl1 = new JLabel("闹铃时间");
alarm = time.getText();
jb = new JButton("修改闹铃时间");
jb.addActionListener(this);
jb.setActionCommand("CC");
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 C1 = Color.lightGray;// 外圈颜色
public class ClockPanel extends JPanel {
public void paint(Graphics g) {
// 绘制圆形
g.setColor(C1);
x = (int) ((r - 10) * Math.cos(RAD * ang) + x0);
y = (int) ((r - 10) * Math.sin(RAD * ang) + y0);
g.drawString("" + i, x, h - y);
// 获取时间
now = Calendar.getInstance();
hh = now.get(Calendar.HOUR_OF_DAY);// 小时
mm = now.get(Calendar.MINUTE);// 分钟
ss = now.get(Calendar.SECOND);// 秒
if (hh 10)
st = "0" + hh;
else
st = "" + hh;
if (mm 10)
st = st + ":0" + mm;
st = st + ":" + mm;
if(alarm.equals(st))
{
if(toolkit!=null)
toolkit.beep();
else {}
if (ss 10)
st = st + ":0" + ss;
st = st + ":" + ss;
// 计算时间和图形的关系
// 擦除秒针
if (old_X 0) {
} else {
old_M = mdo;
old_H = hdo;
// 绘制秒针
g.drawLine(x0, y0, x, (h - y));
old_X = x;
old_Y = y;
// 擦除分针和时针
if (mdo != old_M) {
if (hdo != old_H) {
// 绘制分针
// 绘制时针
} // 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");
//如果撤消设置时间,就什么打印null
if(getTime==null)
System.out.println(getTime);
// dispose();
judge: if (getTime != null) {
//打印输入的设置的时间
JOptionPane.ERROR_MESSAGE);
break judge;
// 判断输入的是不是数字
for (int i = 0; i (getTime.length()); i++) {
c = getTime.charAt(i);
continue;
// 判断当前字符,如果不是数字则跳出该事件
"Error",JOptionPane.ERROR_MESSAGE);
char[] hour = { getTime.charAt(0), getTime.charAt(1) };
newHou = Integer.parseInt(String.valueOf(hour));
newMin = Integer.parseInt(String.valueOf(minute));
"Error", JOptionPane.ERROR_MESSAGE);
new SetTime(newHou, newMin);
if (e.getActionCommand() == "ring1") {
toolkit=Toolkit.getDefaultToolkit();
System.out.println("静音");
toolkit=null;
if (e.getActionCommand() == "color1") {
String color;
Color c;
System.out.println("color1");
if (color == null) {
if (Integer.parseInt(color) 0
else {
c = new Color(Integer.parseInt(color));
C1 = c;
if(color==null){}
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);
Hour = "" + String.valueOf(hour);
if (minute 10) {
Minute = "0" + String.valueOf(minute);
Minute = "" + String.valueOf(minute);
alarm = Hour + ":" + Minute;
time.setText(alarm);
搞不懂为什么要匿名提问,真的那么怕笑话,不至于吧!
import java.util.Timer;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Alarm
public static void main(String[] args)
Timer timer = new Timer();
try{
timer.schedule(new task(),1000,1000);
catch(IllegalStateException e)
System.out.println("时间到");
static class task extends java.util.TimerTask
public void run()
Date now = new Date();
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
this.cancel();
System.out.println(time.format(now));
以上就是土嘎嘎小编为大家整理的java闹钟代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!