首页 > 后端开发 > 正文

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)

2024-03-22 00:00:21 | 我爱编程网

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)相关内容,小编在这里做了整理,希望能对大家有所帮助,关于Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)信息,一起来了解一下吧!

本文目录一览:

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?

代码如下:

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.io.IOException;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Timer;

import java.util.TimerTask;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.Clip;

import javax.sound.sampled.LineEvent;

import javax.sound.sampled.LineListener;

import javax.sound.sampled.LineUnavailableException;

import javax.sound.sampled.UnsupportedAudioFileException;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**

* 闹钟主界面

*/

public class AlarmClock extends JFrame implements ActionListener {

private static final int LOOP_COUNT = 5; // 重复播放的次数

private JLabel labelClock, labelAlarm, labelNextAlarm;

private JButton btnSet, btnClose;

private SetDialog setDialog;

private JPanel topPanel, alarmPanel;

private Timer timer;

private Clip clip;

private Calendar alarmCal;

private boolean timeReached = true;

private DateFormat df = new SimpleDateFormat(

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)

寻找java编程高手写一个闹钟的程序

自己之前做过的一个:

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();;

/**

*

* 方法说明:实现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();

}

/**

*

* 方法说明:绘制图形

*/

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 = 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;

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 = 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);

}

}

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();

}

}

}

Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)

跪求JAVA小闹钟

我爱编程网(https://www.52biancheng.com)小编还为大家带来跪求JAVA小闹钟的相关内容。

日历 你可以 看“用JAVA做个简单的程序。”这个帖 我有解答 不过我做的是某个月的 你要年历 自己去加就可以了

闹钟 你只是要一个定时提醒的程序吗 我不确切你的需求?如果只是定时提醒 然后铃响了后 周期闹铃的话

就这样:

比如是2010年6月12号某个时间点开始闹铃 闹铃后 每隔10分钟再闹一次

Calendar c = Calendar.getInstance();

c.set(Calendar.YEAR,2010);

c.set(Calendar.MONTH,5);

c.set(Calendar.DAY_OF_MONTH,12);

...设置时分秒

Date d = c.getTime();

long peroid = 10*60*1000;//毫秒数

Timer t = new Timer();

Toolkit t1 = Toolkit.getDefaultToolkit();

t.schedule(new TimerTask()

{

public void run()

{

t1.beep();

}

},d,peroid);

以上就是Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“Java建立一个闹钟厂,闹钟属性:形状、颜色、时间(设置为整型)闹钟行为:响铃,设?(寻找java编程高手写一个闹钟的程序)”相关推荐
java 写了一个闹钟程序程序 如何能直接运行。像安装好的软件那样?
java 写了一个闹钟程序程序 如何能直接运行。像安装好的软件那样?

java写了一个闹钟程序程序如何能直接运行。像安装好的软件那样?将Java代码编译成可执行文件或安装包,可以使用Java开发工具和打包工具进行操作,具体步骤如下:选定一个Java开发工具,如Eclipse、NetBeans等,在该工具中打开Java代码文件。配置项目参数,包括程序入口、输出目录、文件名等。进行编译,生成可执行文件或jar包。使用Jav

2024-03-18 05:41:30
php时钟函数 nodered设置时间戳(node时钟)
php时钟函数 nodered设置时间戳(node时钟)

nodered设置时间戳(node时钟)nodered时区错误Node-RED默认使用UTC时区,如果想更改时区,你可以在运行Node-RED时通过TZ变量来传入你期望的时区。在数据库连接处加一句时区就好。进入相应的压缩文件夹,此时会发现那个文件已经在文件夹中了,将其复制到其他地方之后再单击“OK”按钮继续解压。nodejs调了系统时间后date.now错误的原因是系统时间与

2024-09-24 19:01:16
php 如何把5分钟转化为时间戳?
php 如何把5分钟转化为时间戳?

php如何把5分钟转化为时间戳?如何用php把时间戳转化为年月日wangbin_ygLV102017-01-07满意答案nhhxrLV92017-01-08PHP中的strtotime()函数可以实现strtotime()函数将任何英文文本的日期时间描述解析为Unix时间戳。strtotime(time,now)time规定要解析的时间字符串

2024-07-24 04:12:52
JAVA如何给程序设置一个窗口
JAVA如何给程序设置一个窗口

JAVA如何给程序设置一个窗口首先,绘制一个默认的窗体,创建好工程,包,类,命名类为Window.很简单,在类中添加一个私有属性JFrame,这么写:privateJFramef=newJFrame("欢迎来到本自助银行");Window的构造方法中,只写 f.setVisible(true);以及窗体的初始位置和初始大小:f.setLocation(300,200);f.setSiz

2024-05-09 07:58:28
求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间(java获取运行时间)
求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间(java获取运行时间)

求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间public class ThreadRuningTime { public static AtomicInteger integer = new AtomicInteger(0); public static AtomicInteger s = new AtomicInteger(0); public static i

2024-03-18 02:10:30
java程序控制台输出程序运行时间 求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间
java程序控制台输出程序运行时间 求解JAVA编程题:编写一个应用程序,创建三个线程分别显示各自的运行时间

java获取运行时间很多朋友都想知道java怎么获取运行时间?下面就一起来了解一下吧~第一种是以毫秒为单位计算的。//伪代码long startTime=System.currentTimeMillis(); //获取开始时间doSomeThing(); //测试的代码段long endTime=System.currentTimeMillis(); //获取结束时间System.

2024-03-18 02:10:54
课设运行java程序 Java课程设计!急!!!(高分)
课设运行java程序 Java课程设计!急!!!(高分)

Java课设简单的五子棋程序新建一个chess类,其中代码如下packagework;importjava.awt.Color;publicclassChess{publicstaticfinalintdiamter=30;privateintx;//在网格中的索引,0~15privateinty;//在网格中的索引,0~15privateColorcol

2024-04-18 18:21:59
java 如何设定时间执行程序?
java 如何设定时间执行程序?

java如何设定时间执行程序?importjava.util.Calendar;\x0d\x0aimportjava.util.Date;\x0d\x0aimportjava.util.Timer;\x0d\x0aimportjava.util.TimerTask;\x0d\x0a\x0d\x0apublicclassTest{\x0d\x0apublicstaticvoidmain(Str

2024-03-18 12:42:35