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 {
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);
怎样用java 程序写一个时钟程序
面向对象思想写成:
下面是一个显示器类
public?class?Display?{
private?int?value;//现在的值
private?int?limit;//上限值
Display(?int?limit)?{
this.limit?=?limit;
public?void?increase()?{
value++;
if(value?==?limit)?{
value?=?0;
public?int?getValue()?{
return?value;
public?static?void?main(String[]?args)?{
for(;;)?{
d.increase();
System.out.println(d.getValue());
下面创建一个时钟对象:
public?class?Clock?{
public?void?start?()?{
s.increase();
if(s.getValue()?==?0){//如果分重置,小时+1
min.increase();
if(min.getValue()?==?0){//如果分重置,小时+1
h.increase();
Clock?clock?=?new?Clock();
clock.start();
JAVA画时钟代码
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
import?sun.util.calendar.Gregorian;
import?java.util.Calendar;
import?java.util.GregorianCalendar;
public?class?ClockPointer?extends?JFrame{
?int?x,?y,?x0,?y0,?r,?h,?olds_x,?olds_y,?oldm_x,?oldm_y,?oldh_x,?oldh_y,?
?ss,mm,?hh,?old_m,?old_h,?ang;
public?ClockPointer(){
?super("Java时钟");
?setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
?Image?image?=?getToolkit().getImage("clock.gif");
?setIconImage(image);
?setBackground(Color.white);
?this.setLocationRelativeTo(null);
?setResizable(true);
?int?delay?=?1000;
?//创建一个监听事件
?setVisible(true);
?ActionListener?drawClock?=?new?ActionListener(){
??public?void?actionPerformed(ActionEvent?evt){
???repaint();
??}
?};
?//创建一个时间计数器,每一秒触发一次
?new?Timer(delay,?drawClock).start();
java.text.SimpleDateFormat?fmTime?=?new?java.text.SimpleDateFormat("HH:mm:ss");
//绘制图形
public?void?paint(Graphics?g){
?super.paint(g);
?g.setFont(null);
?
?Insets?insets?=?getInsets();
?h?=?getSize().height;
?g.setColor(Color.white);
?//画圆
?g.setColor(Color.gray);
??x?=?(int)((r+10)*Math.cos(RAD*ang)+x0);
??y?=?(int)((r+10)*Math.sin(RAD*ang)+y0);
??g.setColor(Color.black);
??g.drawString(""+i,?x,?h-y);
?}
?//获得现在的时间
?Calendar?now?=?new?GregorianCalendar();
?int?nowh?=?now.get(Calendar.HOUR_OF_DAY);
?int?nowm?=?now.get(Calendar.MINUTE);
?int?nows?=?now.get(Calendar.SECOND);
?String?st=fmTime.format(now.getTime());
?//在窗体上显示时间
?g.setColor(Color.pink);
?g.setColor(Color.blue);
?//计算时间与度数的关系
?//擦除秒针
?//if(olds_x?0){
?//?g.setColor(getBackground());
?//?//?g.setColor(Color.gray);
?//?g.drawLine(x0,?y0,?olds_x,?h-olds_y);?//?(?)
?//}
?//绘制秒针
?g.setColor(Color.yellow);
?g.drawLine(x0,?y0,?x,?h-y);
?olds_x?=?x;
?olds_y?=?y;
?//擦除分针
?//if(old_m!=mm){
?//?g.drawLine(x0,y0,oldm_x,h-oldm_y);
?//绘制分针
?g.setColor(Color.green);
?g.drawLine(x0,y0,x,h-y);
?oldm_x?=?x;
?oldm_y?=?y;
?old_m?=?mm;
?//擦除时针
?//if(old_h!=hh){
?//?g.drawLine(x0,y0,oldh_x,h-oldh_y);
?//绘制时针
?g.setColor(Color.red);
?oldh_x?=?x;
?oldh_y?=?y;
?old_h?=?hh;
public?static?void?main(String[]?args){
?new?ClockPointer();
//整理一下
怎么用java编写时钟呀?
import
java.util.*;
java.awt.*;
java.applet.*;
//impelements
Runnable
是线程程序的接口
public
class
Clock
extends
Applet
implements
Thread
timer
=
null;
//
定义线程实体timer
int
xcenter
ycenter
Radius
-
void
init()
设置时钟程序的窗口大小
setBackground(Color.white);//
设置小应用程序的背景色
paint(Graphics
g)
xh,
yh,
xm,
ym,
xs,
ys,
s,
m,
h;
String
today;
Date
dat
new
Date();
定义时间类dat
s
dat.getSeconds();
获得时间秒
m
dat.getMinutes();
获得时间分
h
dat.getHours();
today
dat.toLocaleString();
获得字符串时间格式
g.clearRect(0,
0,
size().width,
size().height);
消除小应用程序
向左移动一个像素点
if
(xcenter
计算秒的坐标
xs
(int)
(Math.cos(s
*
/
(Radius
+
xcenter);
ys
(Math.sin(s
ycenter);
计算分钟的坐标
xm
(Math.cos(m
①.0)
ym
(Math.sin(m
计算小时的坐标
xh
(Math.cos((h
yh
(Math.sin((h
g.setColor(Color.darkGray);
设置颜色
①.0),
①.0));
g.drawString(today,
显示字符串时钟
g.drawLine(xcenter,
ycenter,
ys);
画秒针
g.setColor(Color.blue);
g.drawArc(xcenter
Radius,
画钟
ym);
画分针
g.drawLine(xcenter
yh);
画时针
start()
(timer
==
null)
Thread(this);
生成Thread(多线程程序)的对象实体
timer.start();
启动生成的线程
stop()
timer.stop();
停止线程的工作
放掉Thread对象
run()
改方法用来定义线程体,一旦线程被启动执行,就开始执行这个方法
while
!=
try
使当前正在执行的线程进入睡眠时间由参数millis确定,
单位时间是毫秒,当这个时间过去,线程即可运行的
使用当前正在执行的线程进入睡眠时间由参数
millis确定,单位是毫秒,当这个时间过去,线程即为可运行的
catch
(InterruptedException
e)
repaint所做的事其实是去调用方法uadate重画效应用程序
所做的工作是先将整个效应用程序区域清除,再去调用paint,完成重画的动作
update(Graphics
paint(g);
以上就是日讯小常识小编为大家整理的java小时钟代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
