JAVA简单转盘时钟

合集下载

JavaScript实现简单钟表时钟

JavaScript实现简单钟表时钟

JavaScript实现简单钟表时钟本⽂实例为⼤家分享了JavaScript实现简单钟表时钟的具体代码,供⼤家参考,具体内容如下效果图:主要思想:1.先画⼀个圆表盘。

2.再⽤js循环画刻度(每⼀个刻度都是li标签)。

3.再画时分秒指针。

4.再⽤JS让指针动起来。

代码中有详细的注释可以直接看代码。

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><style id="style">ul{list-style: none;}#circle{width: 200px;height: 200px;border-radius: 100px;border: 1px solid black;}#kedu li{width: 1px;height: 6px;border-radius: 10px;background-color: black;transform-origin: center 101px;/*设置li标签的旋转中⼼和旋转半径。

*/position: absolute;left: 109px;top: 9px;}#kedu li:nth-of-type(5n+1){height: 12px;width: 2px;}/* 秒针的绘制,⽤transform把div绘制成线条,后⾯的指针都是在这样。

java 模拟时钟问题

java 模拟时钟问题

java 模拟时钟问题编写的JA V A动态模拟时钟,结果每次都走三个格(就相当于1s走了3s的时间)import java.applet.Applet;import java.awt.Color;import java.awt.Graphics;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class ClockApplet extends Applet implements Runnable //Applet支持线程{private Thread athread; //线程private SimpleDateFormat sdateformat; //日期格式public void init(){this.setBackground(Color.white);this.athread = null;}public void paint(Graphics g){this.sdateformat = new SimpleDateFormat("hh时mm分ss秒");g.drawString(this.sdateformat.format(new Date()),25,131);Calendar rightnow = Calendar.getInstance();int second = rightnow.get(Calendar.SECOND);int minute = rightnow.get(Calendar.MINUTE);int hour = rightnow.get(Calendar.HOUR);//半径int R_H = 20,R_M = 4,R_S = 4;//时针的坐标//x ====(9-3)[0-6] (3-9)[6-0]//y ====(12-6)[0-6] (6-12)[6-0]int H_x ;int H_y;//xif(hour == 0){hour = 12;}if( hour >= 3 && hour <= 9 ){H_x = R_H*Math.abs(hour - 9);}else{if(hour > 9){H_x = R_H*Math.abs(hour - 9);}else{H_x = R_H*Math.abs(hour+3);}}//yif( hour >= 6 && hour <= 12 ){H_y = R_H*Math.abs(hour - 12);}else{H_y = R_H*hour;}//分针的坐标int M_x;int M_y;if(minute == 0){minute = 60;}if( minute >= 15 && minute <= 45 ){M_x = R_M*Math.abs(minute - 45); }else{if(minute > 45){M_x = R_M*Math.abs(minute - 45);}else{M_x = R_M*Math.abs(minute+15);}}//yif( minute >= 30 && minute < 60 ){M_y = R_M*Math.abs(minute - 60);}else{M_y = R_M*minute;}//秒针的坐标int S_x;int S_y;if(second == 0){second = 60;}if( second >= 15 && second <= 45 ){S_x = R_S*Math.abs(second - 45);}else{if(second > 45){S_x = R_S*Math.abs(second - 45);}else{S_x = R_S*Math.abs(second+15);}}//yif( second >= 30 && second <= 60 ){S_y = R_S*Math.abs(second - 60);}else{S_y = R_S*second;}// g.drawString(String.valueOf(second),25,50);// g.drawString(String.valueOf(minute),25,60);// g.drawString(String.valueOf(hour),25,70);// g.drawString(String.valueOf(H_x),25,80);// g.drawString(String.valueOf(H_y),25,90);g.drawOval(0,0,120,120);//距离相差10像素g.setColor(Color.darkGray);g.drawString("9",5,65);g.drawString("3",110,65);g.drawString("12",55,15);g.drawString("6",55,115);g.drawString("1",80,20);g.drawString("2",100,40);g.drawString("4",100,90);g.drawString("5",80,110);g.drawString("7",30,110);g.drawString("8",10,90);g.drawString("10",10,40);g.drawString("11",30,20);g.setColor(Color.red);g.drawLine(60,60,H_x,H_y);//前一个点表示起点,另一个表示终点g.setColor(Color.blue);g.drawLine(60,60,M_x,M_y);g.setColor(Color.yellow);g.drawLine(60,60,S_x,S_y);}public void start(){if(athread == null){athread = new Thread(this);athread.start();}}public void stop(){if(athread != null){athread.interrupt();athread = null;}}public void run(){while(athread != null){repaint();try{athread.sleep(1000);}catch(InterruptedException e){}}}}。

用JAVA实现一个时钟

用JAVA实现一个时钟

⽤JAVA实现⼀个时钟⽤JAVA实现⼀个时钟⽤图形库绘制表盘,然后⽤事件处理机制刷新窗⼝,反复重绘,让表针转动起来import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.geom.*;import java.awt.geom.Line2D.Double;import java.math.*;import java.time.LocalTime;public class MyClock {public static void main(String[] args) {// TODO Auto-generated method stubActionListener listener = new TimerClock();Timer t = new Timer(1000, listener);t.start();//System.exit(0);}}class ClockWindow extends JFrame {ClockWindow() {add(new ClockInfo());pack();}}class ClockInfo extends JComponent {private static final int DEFAULT_WIDTH = 500;private static final int DEFAULT_HEIGHT = 500;public void paintComponent(Graphics g) {Graphics2D g2 = (Graphics2D) g;g2.draw(new Ellipse2D.Double(50.0, 50.0, 400.0, 400.0));//圆⼼为250, 250//绘制⼩时刻度g2.setPaint(Color.red);double r1 = 190, r2 = 200;double cx = 250.0, cy = 250.0;for(double i = 0; i < 2.0 * Math.PI; i += (Math.PI / 6.0)) {double lx, ly, rx, ry;lx = r1 * Math.sin(i);ly = r1 * Math.cos(i);rx = r2 * Math.sin(i);ry = r2 * Math.cos(i);g2.draw(new Line2D.Double(cx + lx, cy - ly, cx + rx, cy - ry));}//绘制分钟刻度r1 = 195.0;for(double i = 0; i < 2.0 * Math.PI; i += (Math.PI / 30.0)) {double lx, ly, rx, ry;lx = r1 * Math.sin(i);ly = r1 * Math.cos(i);rx = r2 * Math.sin(i);ry = r2 * Math.cos(i);g2.draw(new Line2D.Double(cx + lx, cy - ly, cx + rx, cy - ry));}//绘制指针double hour = LocalTime.now().getHour() * Math.PI / 6.0;double minute = LocalTime.now().getMinute() * Math.PI / 30.0;double second = LocalTime.now().getSecond() * Math.PI / 30.0;//时针g2.setPaint(Color.black);g2.setStroke(new BasicStroke(4.0f));g2.draw(new Line2D.Double(cx, cy, cx + 120.0 * Math.sin(hour), cy - 120.0 * Math.cos(hour)));//分针g2.setPaint(Color.green);g2.setStroke(new BasicStroke(2.0f));g2.draw(new Line2D.Double(cx, cy, cx + 140.0 * Math.sin(minute), cy - 140.0 * Math.cos(minute)));//秒针g2.setPaint(Color.red);g2.setStroke(new BasicStroke(1.0f));g2.draw(new Line2D.Double(cx, cy, cx + 160.0 * Math.sin(second), cy - 160.0 * Math.cos(second)));//⽂字Font f = new Font("Serif", Font.PLAIN, 30);//逻辑字体g2.setFont(f);g2.setColor(Color.orange);int h = LocalTime.now().getHour();int m = LocalTime.now().getMinute();int s = LocalTime.now().getSecond();g2.drawString("" + h + ":" + m + ":" + s,10,50);}public Dimension getPreferredSize() {return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); }}class TimerClock implements ActionListener {ClockWindow frame;TimerClock() {frame = new ClockWindow();frame.setTitle("MyClock");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubframe.repaint();}}。

利用JAVA实现一个时钟的小程序

利用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简易电子时钟代码Word版

java简易电子时钟代码Word版

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.text.SimpleDateFormat;public class ClockJFrame extends JFrame{private Date now=new Date();Panel buttons=new Panel();Button button_start=new Button("启动");Button button_interrupt=new Button("停止");Clock label=new Clock();public ClockJFrame() //构造方法{super("电子时钟");this.setBounds(300,240,300,120);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLayout(new BorderLayout());this.getContentPane().add("North",label);//初始化一个容器,用来在容器上添加一个标签this.getContentPane().add("South",buttons);buttons.setLayout(new FlowLayout());buttons.add(button_start);buttons.add(button_interrupt);setVisible(true);}private class Clock extends Label implements ActionListener,Runnable{ private Thread clocker=null;private Date now=new Date();public Clock(){button_start.addActionListener(this);button_interrupt.addActionListener(this);SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式String t = dateFormat.format( now );this.setText(t);}public void start(){if(clocker==null){clocker=new Thread(this);clocker.start();}}public void stop(){clocker=null;}public void run(){Thread currentThread=Thread.currentThread();while(clocker==currentThread){now=new Date();SimpleDateFormat dateFormat = newSimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式String t = dateFormat.format( now );this.setText(t);try{clocker.sleep(1000);}catch(InterruptedException ie){JOptionPane.showMessageDialog(this,"Thread error:+ie");}}}public void actionPerformed(ActionEvent e){if (e.getSource()==button_start) {clocker = new Thread(this); //重新创建一个线程对象clocker.start();button_start.setEnabled(false);button_interrupt.setEnabled(true);}if (e.getSource()==button_interrupt) //单击中断按钮时{clocker.stop(); //设置当前线程对象停止标记button_start.setEnabled(true);button_interrupt.setEnabled(false);}}}//内部类结束public static void main(String[] args) {ClockJFrame time=new ClockJFrame();}}运行结果:。

Java模拟时钟制作案例

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

JAVA可视化闹钟源码

JAVA可视化闹钟源码

JAVA可视化闹钟源码概述⼀些同学的Java课设有这样⼀个问题,⽐较感兴趣就做了⼀下功能介绍:1、可增加闹钟2、可删除闹钟3、时间到了响铃4、关闭闹钟不会丢失闹钟(因为闹钟存储在txt⽂件中,不会因程序关闭就终⽌)缺点1、没有使⽤多线程,闹钟响起时只能等待1分钟或者关闭程序2、界⾯设计不够美观,后期有时间会进⾏修改,重新设计3、没有闹钟修改的功能,虽然可以通过增删来达到修改的⽬的,但功能仍然属于空缺范围1package Clock;23import sun.audio.AudioPlayer;4import sun.audio.AudioStream;56import javax.swing.*; //awt和swing是做界⾯⽤的类7import java.awt.*;8import java.awt.event.ActionEvent;9import java.awt.event.ActionListener;10import java.awt.event.WindowAdapter;11import java.awt.event.WindowEvent;12import java.io.*; //io流⽤于读写⽂件,包括增删闹钟、打开铃声等等13import java.util.Calendar; //⽤于获取当前时间的类14import java.util.GregorianCalendar;//标准阳历15import java.util.StringTokenizer; //读取⽂件转换成计算机语⾔⽤的类16/*171 计时器18要求1:⼀个带有可视化界⾯的钟表。

19要求2:可以添加若⼲个闹钟。

20要求3:具备持久化功能,关闭程序不能丢失闹钟。

21要求4:闹钟是可编辑,可删除的。

2223实现:先创建⼀个⾯板显⽰闹钟,⾯板内创建按钮增加闹钟,按钮查看闹钟,按钮删除闹钟24线程间隔1s读取时间和闹钟⽐较2526*/27public class ClockTry extends JFrame implements Runnable {28/* 成员变量 */29private JPanel xx; //总的⾯板30private JComboBox ho; //hour选择时间的下拉框31private JComboBox mi; //min选择分钟的下拉框32private JButton tjnz; //添加闹钟的按钮33private JButton schour; //删除闹钟的按钮34private String filename = "D://homework//java//Gui//src//Clock//0.wav"; //所有的路径改这两个地⽅就可以了35private String pathname = "D://homework//java//Gui//src//Clock//nz.txt"; // 绝对路径或相对路径都可以,写⼊⽂件时演⽰相对路径,读取以上路径的input.txt⽂件3637private int HOUR; //定义HOUR⽤于接收按钮按下从下拉框中获取的数据38private int MIN; //同上3940int x = 100, y = 100, r = 100; // (x,y)为(0,0)点,表⽰原点41int h, m, s; // 时,分,秒42double rad = Math.PI / 180; // 1°4344private String[][] str= new String[100][2]; //定义⼆维数组,⽤于存储以及对⼩时和分针的操作,暂定为100个闹钟于是定义为【100】【2】45/**46 *读取⽂件,每次的增删都需要对数据进⾏读取,将数据写在⾯板上也需要读取数据47*/48public void readFile() {49try (FileReader reader = new FileReader(pathname); //创建⼀个FilReader对象,将⽂件读出来,相当于请教⼀个当地⼈,当地⼈了解本地⽂化,但是语⾔不通听不懂50 BufferedReader br = new BufferedReader(reader) // 建⽴⼀个对象,它把⽂件内容转成计算机能读懂的语⾔,相当于请⼀个翻译,把当地⼈读取的东西转换成计算机能懂的东西51 ) {52 String line;5354int i =0;55while ((line = br.readLine()) != null) { //翻译理解的东西存到line⾥⾯56int j =0;57 StringTokenizer st = new StringTokenizer(line, ":"); //重点:由于存储数据时都是时间,道理来说都是数字,⽆法区分⼩时部分和分钟部分58while (st.hasMoreTokens()){ //每读取⼀次读到的内容 //所以这⾥⽤分割符“:”来分割,相应的,后⾯的写⼊⽂件也应该已“:”分割进⾏写⼊59 str[i][j]=st.nextToken(); //把读到的内容存储在数组⾥⾯便于后⾯的操做——增删60 j++; //包括上⾯的j=0,是将for循环拆分放进while循环中,要不然循环写起来也很⿇烦61 }62//System.out.print(str[i][0]+":"+str[i][1]); 写的时候⽤来在控制台打印查看效果63//System.out.println();64 i++;65 j = 0;66 }67 } catch (IOException e) {68 e.printStackTrace(); //try……catch抛出异常69 }70 }717273/**74 * 写⼊TXT⽂件75*/76public void writeFile() {77 HOUR = Integer.valueOf(ho.getSelectedIndex()); //获取下拉框中的值,存储到HOUR中78 MIN = Integer.valueOf(mi.getSelectedIndex());79 String x = HOUR + ":" + MIN;80try (FileWriter writer = new FileWriter(pathname,true); //同上⾯的读取,本地⼈写⼊,注意:后⾯的append:true是表⽰不是重新写,⽽是在后⾯追加81 BufferedWriter out = new BufferedWriter(writer) //翻译⼀下再写⼊82 ) {8384 out.write(HOUR + ":" + MIN + "\r\n"); //这⾥写⼊的时候把:写进去了!85 out.flush(); // 把缓存区内容压⼊⽂件,计算机的存储过程,存在缓存区再写⼊⽂件86 JOptionPane.showMessageDialog(null,"闹钟添加成功!","添加闹钟提醒",RMATION_MESSAGE); //提⽰框:添加闹钟成功87 } catch (IOException e) {88 e.printStackTrace();8990 }9192 }939495/**96 * 删除闹钟,实际上是先将要删除的数据找到移除数组,再将数组重新写⼊,所以要先读取⽂件,再重新写⼊97*/98public void shanchuFile() {99 HOUR = Integer.valueOf(ho.getSelectedIndex());100 MIN = Integer.valueOf(mi.getSelectedIndex());101try (FileWriter writer = new FileWriter(pathname); //没有append:true,表⽰重新写!102 BufferedWriter out = new BufferedWriter(writer)103 ) {104 readFile();105for (int i = 0; i < 100; i++) {106if (Integer.valueOf(str[i][0])==HOUR && Integer.valueOf(str[i][1])==MIN){107continue;108 }109else{110 out.write(str[i][0]+":"+str[i][1]+"\r\n"); // \r\n即为换⾏111 }112 }113114//out.write("1"+"1"+"\r\n"); // \r\n即为换⾏115 out.flush(); // 把缓存区内容压⼊⽂件116 } catch (IOException e) {117 e.printStackTrace();118 }catch (NumberFormatException e){119 System.out.println("this isn't exist!");120 JOptionPane.showMessageDialog(null,"该闹钟已删除!","删除闹钟提醒",RMATION_MESSAGE); //弹窗提⽰121 }122 }123124/* 初始化函数 */125public void init() {126127 Calendar now = new GregorianCalendar(); //获取当前时间128/*129 * GregorianCalendar(标准阳历)130 * 是Calendar(⽇历)【国际环境下都能运⾏的程序】131 * 的⼦类132*/133 s = now.get(Calendar.SECOND) * 6; // 秒针转换成⾓度:1秒,秒针动⼀次,转动6°134 m = now.get(Calendar.MINUTE) * 6; // 分针转换为⾓度:1分,分针动⼀次,转动6°135 h = now.get(Calendar.HOUR) * 30 + now.get(Calendar.MINUTE) / 12 * 6; // 先把分化为⼩时,再乘以6°,因为分针转12°,时针才会转1°,⼀⼩时中间有5格,数学问题136/*137 * Calendar.HOUR 显⽰范围:1-12(⽆论AM还是PM) Calendar.HOUR_OF_DAY 显⽰范围:1-24(包括PM138*/139140 Thread t = new Thread(this); //添加线程,线程⽬标是整个程序,this141 t.start(); //线程就绪142 }143144public void paint(Graphics g) { //awt中的⽅法,因为要时时显⽰闹钟,所以不得不使⽤绘画的⽅式,不断重绘145super.paint(g);146/*147 * paint(g)函数会重绘图像,要加上super.paint(g),表⽰在原来图像的基础上,再画图。

Java 桌面小时钟

Java 桌面小时钟

Java 桌面小时钟一:简介:Java桌面小时钟制作过程:从网上收集可用的表盘、时针、分针、秒针图片,用Photoshop CS5进行修剪,在eclipse上利用Java绘图技术将图片加载在一个JPanel上,其中时针分针秒针按获取到的日期和计算公式进行旋转。

JPanel放在JFrame上,并将窗口设置为不规则形状。

后期为时钟添加事件响应,双击时关闭,鼠标位于窗口上时鼠标形状变为手型,窗口可拖拽。

鼠标悬停在时钟上时,可提示当前的年月日等信息。

程序运行结果如下:难点:本程序主要是控制时针分针秒针图片的旋转,从而实现时钟走动的效果。

但是在控制图片旋转的过程中遇到一个难题。

旋转后的图片会有锯齿现象,这回影响到程序的界面外观,解决办法是利用Java2D类的渲染参数,把渲染级别提高。

关键代码如下:// 获取绘图上下文的副本Graphics2D g1 = (Graphics2D) g.create();// 设置绘图上下文以质量为主,绘制图片,这样可以避免图片旋转时的锯齿g1.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHint s.VALUE_RENDER_QUALITY);二:类详解:MainFrame类本程序主类名称是MainFrame,它继承Jframe类成为一个窗体类。

在该类的构造方法中对窗体进行了初始化,为窗体控件进行了布局,并添加了必要的事件监听器。

关键代码如下:public MainFrame() {super();setAlwaysOnTop(true);setResizable(false);// 禁止调整窗体大小setUndecorated(true);//不装饰setShape(new Ellipse2D.Double(0, 0, 226, 224));//设置为圆形窗口setBounds(100, 100, 226, 224);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置鼠标为手型setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));// 创建自定义面板对象final ImagePanel imagePanel = new ImagePanel();// 添加面板对象到窗体getContentPane().add(imagePanel, BorderLayout.CENTER);// 为鼠标面板添加鼠标事件监听器imagePanel.addMouseListener(new MouseAdapter() {Public void mousePressed(final MouseEvent e) {fp = e.getPoint();}public void mouseClicked(MouseEvent e) {if (e.getClickCount() == 2) {System.exit(0);}}});// 为时钟面板的鼠标拖动事件中移动窗体imagePanel.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(final MouseEvent e) {JFrame frame = (JFrame) getRootPane().getParent();Point point = e.getLocationOnScreen();frame.setLocation(point.x - fp.x, point.y - fp.y);}});Thread imageThread = new Thread(imagePanel);imageThread.start();// 启动线程}ImagePanel类继承JPanel类编写一个自定义的面板控件,该控件类的名称为ImagePanel,作为本程序的背景面板,支持背景图片及时针、分针、秒针的旋转,图片的旋转是通过线程实现的,并且线程要控制旋转速度与时间。

利用JAVA实现一个时钟的小程序

利用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钟表课程设计

java钟表课程设计

java钟表课程设计一、教学目标本节课的学习目标包括:知识目标:学生需要掌握Java编程语言的基本语法和流程控制语句;理解面向对象编程的基本概念,如类、对象、封装、继承等。

技能目标:学生能够运用Java语言实现一个简单的钟表程序,包括时针、分针和秒针的移动,以及时间的显示;培养学生解决问题的能力和创新思维。

情感态度价值观目标:培养学生对编程的兴趣和热情,提高他们的自信心和自我成就感,培养团队合作意识和良好的编程习惯。

二、教学内容本节课的教学内容主要包括:1.Java编程语言的基本语法和流程控制语句,如变量、数据类型、运算符、条件语句、循环语句等。

2.面向对象编程的基本概念,如类、对象、封装、继承等,以及如何运用这些概念来实现一个简单的钟表程序。

3.钟表程序的实现,包括时针、分针和秒针的移动,以及时间的显示。

三、教学方法本节课的教学方法包括:1.讲授法:教师讲解Java编程语言的基本语法和流程控制语句,以及面向对象编程的基本概念。

2.案例分析法:教师通过分析一个简单的钟表程序的实现,引导学生理解和运用Java语言实现钟表功能。

3.实验法:学生分组进行实验,运用Java语言实现一个简单的钟表程序,培养学生的动手能力和创新思维。

四、教学资源本节课的教学资源包括:1.教材:Java编程语言的基础知识教材,用于引导学生学习基本语法和流程控制语句。

2.多媒体资料:PPT课件,用于展示钟表程序的实现过程和示例代码。

3.实验设备:计算机和网络设备,用于学生分组进行实验,实现钟表程序。

五、教学评估本节课的评估方式包括:1.平时表现:评估学生的出勤、课堂参与度、提问回答等情况,以了解学生的学习态度和积极性。

2.作业:评估学生提交的作业,包括钟表程序的代码实现和相关的练习题,以检验学生对Java编程语言和钟表程序的理解和掌握程度。

3.考试:设计一份考试,包括选择题、填空题和编程题,以全面评估学生对Java编程语言和钟表程序的掌握情况。

java简易流动字幕代码(用电子时钟控制)

java简易流动字幕代码(用电子时钟控制)

import java.awt.*;import java.awt.event.*;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.*;public class Ticker_Tape extends JFrame {private Date now=new Date();private Panel buttons=new Panel();private Button button_start=new Button("启动");private Button button_interrupt=new Button("停止");private Clock time=new Clock();private Label word=new Label("Welcom");char space[]=new char[75];public Ticker_Tape(){super("滚动字");this.setBounds(300,240,300,200);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLayout(new GridLayout(3,1));this.add(word);this.add(time);this.add(buttons);buttons.setLayout(new FlowLayout());buttons.add(button_start);buttons.add(button_interrupt);java.util.Arrays.fill(space, ' '); //将字符数组space填充满空格word.setText(new String(space)+word.getText()); //text前加空格字符串 setVisible(true);}private class Clock extends Label implements ActionListener, Runnable{ private Thread clocker=null;private Date now=new Date();public Clock(){b utton_start.addActionListener(this);button_interrupt.addActionListener(this);S impleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式S tring t = dateFormat.format(now );t his.setText(t);}public void start(){if(clocker==null){clocker=new Thread(this);clocker.start();}}public void stop(){clocker=null;}public void run(){Thread currentThread=Thread.currentThread();while(clocker==currentThread){now=new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");//可以方便地修改日期格式String t = dateFormat.format( now );this.setText(t);try{String str =word.getText();str = str.substring(1)+ str.substring(0,1);word.setText(str);clocker.sleep(1000);}catch(InterruptedException ie){JOptionPane.showMessageDialog(this,"Thread error:+ie");}}}public void actionPerformed(ActionEvent e){if (e.getSource()==button_start) {clocker = new Thread(this); //重新创建一个线程对象clocker.start();button_start.setEnabled(false);button_interrupt.setEnabled(true);}if (e.getSource()==button_interrupt) //单击中断按钮时{clocker.stop(); //设置当前线程对象停止标记button_start.setEnabled(true);button_interrupt.setEnabled(false);}}}//内部类结束public static void main(String[] args) { Ticker_Tape time=new Ticker_Tape(); }}运行结果:。

漂亮时钟java完整代码

漂亮时钟java完整代码

漂亮时钟java完整代码这个时钟是用java写的,我觉得很完美,其中加载了声音和背景图片,我会把图片贴在这里,至于背景音乐可以根据自己的需要改动,程序运行后效果如下:今天把这个程序贴在这里,希望能帮到学习java的学弟学妹们。

源代码如下:import java.applet.Applet;import java.applet.AppletContext;import java.applet.AudioClip;import java.awt.*;import java.awt.event.*;import java.io.PrintStream;import java.util.Date;public class Clock extends Applet implements Runnable{Thread th1 = null;Image offScreenImage = null;Graphics offScreen = null;Image picture = null;int icount = 0;AudioClip song;private String n="look! My clock!";private String m="made by:";private String p="jessie with the number 200501109";public Clock(){}public void init(){try{offScreenImage = createImage(800, 600);offScreen = offScreenImage.getGraphics();}catch(Exception _ex){offScreen = null;}picture = getImage(getCodeBase(), "Clockscreen.jpg");song=getAudioClip(getCodeBase(),"song.wav");song.loop();//加载声音}public void start(){th1 = new Thread(this);th1.start();}public void stop(){th1 = null ;}public static int vectorX(int i, int h, int j){int k = (i + h) % 360;int l = (int)((double)j* Math.cos((double)k * 2 * Math.PI / 360));return l;}public static int vectorY(int i, int h, int j){int k = (i + h) % 360;int l = (int)((double)j* Math.sin((double)k * 2 * Math.PI / 360));return l;}public void run(){Thread.currentThread().setPriority(5);do{try{Thread.sleep(1000);}catch(InterruptedException _ex) { }repaint();}while(true);}public void paint(Graphics g) //防止闪屏{update(g);}public synchronized void update(Graphics g){if(offScreen != null){paintApplet(offScreen);g.drawImage(offScreenImage, 0, 0, this);return;}else{paintApplet(g);return;}}public void paintApplet(Graphics g)//具体画页面{g.setColor(Color.white);g.fillRect(0, 0, 677, 555);g.drawImage(picture, 0, 0, this);g.setColor(Color.pink); //设置字体颜色g.setFont(newFont("Arial",Font.PLAIN,24)); //设置文本字体和大小g.drawString(n,20,50); //写文本“look!My clock!”g.drawString(m,200,510); //写文本"made by:"g.drawString(p,300,550);//写文本"jessie with thenumber 200501109"g.setColor(Color.pink);//画表盘g.drawOval(425,58,200,200);g.drawOval(415,48,220,220);for(int x=0;x<360;x+=6){if(x%5!=0){int u1=vectorX(x,270,100);int v1=vectorY(x,270,100);int u2=vectorX(x,270,110);int v2=vectorY(x,270,110);g.setColor(Color.pink);g.drawLine(525+u1,158+v1,525+u2,158+v2);}else{int u3=vectorX(x,270,90);int v3=vectorY(x,270,90);int u4=vectorX(x,270,110);int v4=vectorY(x,270,110);g.setColor(Color.pink);g.drawLine(525+u3,158+v3,525+u4,158+v4);}};String s1="12";String s2="3";String s3="6";String s4="9";g.setColor(Color.pink);g.drawString(s1,505,50);g.drawString(s2,635,165);g.drawString(s3,520,285);g.drawString(s4,400,165);g.setColor(Color.pink);g.fillOval(522,155,6,6);//表盘中心的圆点和圆圈g.setColor(Color.yellow);g.drawOval(518,149,14,14);Date date = new Date();int i = date.getMinutes();int j = i * 6;int kk = (date.getHours() ) % 24;g.setFont(new Font("Helvetica", 1, 28));//设置字体,显示数码时间;String s = new String();s = kk+ ":" + date.toString().substring(14, 19);g.setColor(Color.pink);g.drawString(s,465, 320);int k= (date.getHours() ) % 12;//开始获取时间经过计算画出时针、分针、秒针int l = k * 30 + (i / 12) * 6;int a = vectorX(l,255,63);int b= vectorY(l,255,63);int c = vectorX(l,270,63);int d= vectorY(l,270,63);int x1[]={525,525+a/4,525+c};int y1[]={158,158+b/4,158+d};g.setColor(Color.pink);g.fillPolygon(x1,y1,3);int a1 = vectorX(j,255,73);int b1= vectorY(j,255,73);int c1= vectorX(j,270,73);int d1= vectorY(j,270,73);int x2[]={525,525+a1/4,525+c1};int y2[]={158,158+b1/4,158+d1};g.setColor(Color.pink);g.fillPolygon(x2,y2,3);int k1 = date.getSeconds() * 6;int a2 = vectorX(k1,255,85);int b2= vectorY(k1,255,85);int c2 = vectorX(k1,270,85);int d2= vectorY(k1,270,85);int x3[]={525,525+a2/4,525+c2};int y3[]={158,158+b2/4,158+d2};g.setColor(Color.pink);g.fillPolygon(x3,y3,3);}}然后还有html文件,容如下:<HTML><BODY><APPLET CODE="Clock.class"HEIGHT=597 WIDTH=773></APPLET> </BODY></HTML>其中的图片如下。

java钟表时钟显示时间

java钟表时钟显示时间

setIconImage(image);
setSize(200,200);
setBackground(Color.black);
setLocation(300,150);
setResizable(false);
show();
int delay = 1000;
//创建一个监听事件
}
//绘制时针
x = (int)(r*0.5*Math.cos(RAD*hh))+x0;
y = (int)(r*0.5*Math.sin(RAD*hh))+y0-2*T;
g.setColor(Color.red);
g.drawLine(x0,y0,x,h-y);
oldh_x = x;
public class Clock<Calender> extends JFrame implements ActionListener{
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;
oldh_y = y;
old_h = hh;
}
public static void main(String[] args){
ห้องสมุดไป่ตู้
Clock c = new Clock();
}
}
示数字时间
x0 = r+40+L;
y0 = r+40+T;
g2D.setStroke(new BasicStroke(1.2f));

动态旋转时钟

动态旋转时钟
角给充固定区域填充颜色,然后用g.drawString() 把动态拼出来
的时间画上去;
d.先擦除秒针,用drawLine()把上一秒的指 针填充为背景色,获取下一秒的位置再drawLine() 上;(分针和时针)


3 程序解析
创建构造方法与监听事件


3 程序解析
利用Graphics2D画圆,g.fillOval(5, 10, 400, 400):画圆的工具,指 定 。 容 器 必 须
3.repaint()方法,new一个定时器,每隔1 秒调用ActionListener实例,重画一次;

2|Leabharlann java动态旋转时钟 编写过程
3.写paint(Graphics g)方法, a.用g.drawOval();方法画圆; b.用g.drawString();方法绘制表盘上1~12的
数字,定位用Math.sin()、Math.cos(); c.用g.setColor(),g.fillRect()在窗体左上
java动态 旋转时钟
1
继承窗口,设置窗口的元素,添加组件
2
创建监听事件,创建时间计数器

设计思想

3 实现ActionListener接口,利用2D绘制图形的方
法绘制圆
4
绘制时钟上的数字,然后利用Calendar类提供的方 法获得现在的时间计算时间和度数的关系
5 在利用2D绘制图形的方法绘制出各指针
java动态旋转时钟设计思想继承窗口设置窗口的元素添加组件创建监听事件创建时间计数器实现actionlistener接口利用2d绘制图形的方法绘制圆123设计思想法绘制圆绘制时钟上的数字然后利用calendar类提供的方法获得现在的时间计算时间和度数的关系54在利用2d绘制图形的方法绘制出各指针编写过程1

JavaFX实现简易时钟效果(一)

JavaFX实现简易时钟效果(一)

JavaFX实现简易时钟效果(⼀)本⽂实例为⼤家分享了JavaFX实现简易时钟效果的具体代码,供⼤家参考,具体内容如下效果图⽤当前时间创建时钟,绘制表盘。

钟表是静⽌的。

让指针动起来,请参照:主函数⽂件 ShowClock:package primier;import javafx.application.Application;import javafx.geometry.Insets;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.stage.Stage;import javafx.scene.paint.Color;import yout.*;import javafx.scene.control.*;import javafx.scene.image.Image;import javafx.scene.image.ImageView;import javafx.scene.shape.Line;public class ShowClock extends Application {@Override //Override the start method in the Application classpublic void start(Stage primaryStage) {// 创建时钟⾯板ClockPane clock = new ClockPane();// 当前时间整理为字符串String timeString = clock.getHour() + ":" + clock.getMinute()+ ":" + clock.getSecond();Label lbCurrentTime = new Label(timeString);BorderPane pane = new BorderPane();pane.setCenter(clock);pane.setBottom(lbCurrentTime);// 将时钟字符串设为靠上居中BorderPane.setAlignment(lbCurrentTime, Pos.TOP_CENTER);Scene scene = new Scene(pane, 250,250);primaryStage.setTitle("Display Clock");primaryStage.setScene(scene);primaryStage.show();}public static void main (String[] args) {unch(args);}}ClockPane 类package primier;import java.util.Calendar;import java.util.GregorianCalendar;import yout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.shape.Line;import javafx.scene.text.Text;public class ClockPane extends Pane {private int hour;private int minute;private int second;// 时钟⾯板的宽度和⾼度private double w = 250, h = 250;/** ⽤当前时间创建时钟 */public ClockPane() {setCurrentTime();}/** Return hour */public int getHour() { return hour; }/** Return minute */public int getMinute() { return minute; }/** Return second */public int getSecond() { return second; }/** Set the current time for the clock */public void setCurrentTime() {// ⽤当前时间创建Calendar类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.4; // 时钟半径// 时钟中⼼x, y坐标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 secondX = centerX + sLength * Math.sin(second * (2 * Math.PI / 60)); double secondY = centerY - sLength * Math.cos(second * (2 * Math.PI / 60)); Line sLine = new Line(centerX, centerY, secondX, secondY);sLine.setStroke(Color.GRAY);// 分针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.0) * (2 * Math.PI / 12));Line hLine = new Line(centerX, centerY, hourX, hourY);sLine.setStroke(Color.GREEN);// 将之前的结点清空,绘制新创建的结点getChildren().clear();getChildren().addAll(circle, t1, t2, t3, t4, sLine, mLine, hLine);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

Java数字时钟(简单的桌面应用)

Java数字时钟(简单的桌面应用)

import java.util.*;/*****该程序是一个简单的数字时钟,每变化一秒,颜色随机变色,可以系统托盘,最大的特点是可以和桌面形成一体,也就是容纳这个数字时钟的窗体可以看成是透明的***********/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;public class app509 extends JFrame{static int i=-1,geli=-1;/*这一部分是系统托盘图标的文件路径,可以自己设置,只要路径正确即可,可以是gif,jpg,png格式*/static Image image=Toolkit.getDefaultToolkit().getImage("D:1\\3.png");static SystemTray systemTray=SystemTray.getSystemTray();static PopupMenu pop01=new PopupMenu();static MenuItem MI01=new MenuItem("打开主程序");static MenuItem MI02=new MenuItem("退出程序");static MenuItem MI03=new MenuItem("隐藏");static TrayIcon trayIcon=new TrayIcon(image,"这是程序图标",pop01);static JLabel beijingtu=new JLabel();static JLabel xingqi=new JLabel(" ",JLabel.CENTER);static JLabel jlabel02=new JLabel("年",JLabel.CENTER);static JLabel jlabel03=new JLabel("月",JLabel.CENTER);static JLabel jlabel04=new JLabel("日",JLabel.CENTER);static JLabel jlabel05=new JLabel("分",JLabel.CENTER);static JLabel jlabel10=new JLabel("时",JLabel.CENTER);static JLabel jlabel12=new JLabel("分",JLabel.CENTER);static JLabel jlabel13=new JLabel("秒",JLabel.CENTER);static JLabel jlabel06=new JLabel(" ",JLabel.CENTER);static JLabel jlabel07=new JLabel(" ",JLabel.CENTER);static JLabel jlabel08=new JLabel(" ",JLabel.CENTER);static JLabel jlabel09=new JLabel(" ",JLabel.CENTER);static JLabel jlabel11=new JLabel(" ",JLabel.CENTER);static JLabel jlabel=new JLabel(" ",JLabel.CENTER);static JLabel jbData[]={jlabel13,jlabel02,jlabel03,jlabel04,jlabel10,jlabel12};static JLabel jbData02[]={jlabel,jlabel07,jlabel08,jlabel09,jlabel11,jlabel06};static int mill=0;static int minute=0;static int hour=0;static int day=0;static int month=0;static int year=0;static int week;static int zuobiaoX,zuobiaoY;static JFrame JF01=new JFrame();static JDialog JF=new JDialog(JF01," ");static Robot robot;static BufferedImage image1;static Rectangle rec;static class mouseListener extends MouseAdapter{public void mouseClicked(MouseEvent a){if(a.getSource()==trayIcon){if(a.getClickCount()==2){i++;if(i%2==1){geli++;if(geli%2==1){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}else{JF.setBounds(0,0,400,1);}}}}public void mouseEntered(MouseEvent a){if(a.getSource()==JF){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}public void mouseExited(MouseEvent a){if(a.getSource()==JF){JF.setBounds(0,0,400,1);}}}public static void main(String args[]) throws Exception{trayIcon.addMouseListener(new mouseListener());rec=new Rectangle(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());try{robot=new Robot(); }catch(Exception b){}image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));MI01.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){Image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}});MI03.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){JF.setBounds(0,0,400,1);}});MI02.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){System.exit(0);}});try{pop01.add(MI01);pop01.add(MI03);pop01.add(MI02);systemTray.add(trayIcon);trayIcon.setImageAutoSize(true);trayIcon.addMouseListener(new mouseListener());}catch(Exception a){} JF.setResizable(false) ;JF.addMouseListener(new mouseListener());JF.setUndecorated(true);beijingtu.setBounds(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());JF.setLayout(null);JF.setBounds(0,0,120,560);JF.setVisible(true);jlabel02.setBounds(91,94,24,25);jlabel06.setBounds(15,94,64,28);jlabel03.setBounds(91,175,24,25);jlabel07.setBounds(2,125,86,75);jlabel04.setBounds(91,261,24,25);jlabel08.setBounds(2,210,86,75);jlabel10.setBounds(91,346,24,25);jlabel09.setBounds(2,296,86,75);jlabel11.setBounds(2,382,86,75);jlabel12.setBounds(91,433,24,25);jlabel13.setBounds(91,520,24,25);jlabel.setBounds(2,468,86,75);xingqi.setBounds(2,30,118,62);JF.add(xingqi);xingqi.setHorizontalTextPosition(JLabel.CENTER);xingqi.setFont(new Font("微软雅黑",Font.BOLD,20));for(int i=0;i<jbData.length;i++){JF.add(jbData[i]);JF.add(jbData02[i]);}for(int i=0;i<jbData.length;i++){jbData[i].setFont(new Font("微软雅黑",Font.BOLD,15));jbData02[i].setFont(new Font("微软雅黑",Font.BOLD,30));}jlabel06.setFont(new Font("微软雅黑",Font.BOLD,15));for(int i=0;i<jbData.length;i++){jbData[i].setForeground(Color.blue);jbData02[i].setForeground(Color.red);}for(int i=0;i<jbData.length;i++){jbData[i].setHorizontalTextPosition(JLabel.CENTER);jbData02[i].setHorizontalTextPosition(JLabel.CENTER);}jlabel02.setHorizontalTextPosition(JLabel.RIGHT);JF.add(beijingtu);xiancheng xiancheng01=new xiancheng();xiancheng01.start();}}class xiancheng extends Thread{static GregorianCalendar date=new GregorianCalendar();app509 app=new app509();public void run(){for(int i=0;i<60;){try{sleep(1000);}catch(Exception a){}app.year=(date=new GregorianCalendar()).get(date.YEAR);app.jlabel06.setText(Integer.toString(app.year));app.month=((date=new GregorianCalendar()).get(date.MONTH)+1);app.jlabel07.setText(Integer.toString(app.month));app.day=(date=new GregorianCalendar()).get(date.DAY_OF_MONTH);app.jlabel08.setText(Integer.toString(app.day));app.week=(date=new GregorianCalendar()).get(date.DAY_OF_WEEK);app.hour=(date=new GregorianCalendar()).get(date.HOUR_OF_DAY);app.jlabel09.setText(Integer.toString(app.hour));app.minute=(date=new GregorianCalendar()).get(date.MINUTE);app.jlabel11.setText(Integer.toString(app.minute));l=(date=new GregorianCalendar()).get(date.SECOND);app.jlabel.setText(Integer.toString(l));if(app.jlabel.getText()!=" "){app.xingqi.setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));for(int j=0;j<app.jbData.length;j++){app.jbData[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));app.jbData02[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));}} switch(app.week){case 1 : app.xingqi.setText("星期日");break;case 2 : app.xingqi.setText("星期一");break;case 3 : app.xingqi.setText("星期二");break;case 4 : app.xingqi.setText("星期三");break;case 5 : app.xingqi.setText("星期四");break;case 6 : app.xingqi.setText("星期五");break;case 7 : app.xingqi.setText("星期六");break;}System.gc();}}}/****复制以上代码进行编译即可*****/程序效果图:。

Java 实现数字时钟

Java  实现数字时钟

Java 实现数字时钟时钟在人们的日常生活中很常见。

本实例介绍用Java事件实现简单的数字时钟功能。

(1)在【文件】菜单下选择【新建】|【类】命令,在弹出的对话框【新建Java类】中,创建ClockDemo.java文件,如图10-20所示。

图10-20 新建Java类(2)添加程序中要用到的程序包,代码如下所示。

import java.awt.*;import java.util.*;import javax.swing.*;(3)创建ClockDemo类的构造方法,设置窗口的大小、标题和显示时钟的字体,代码如下所示。

public ClockDemo(){super("数字时钟"); //调用父类构造函数setFont(new Font("Times New Roman",Font.BOLD,60)); //设置时钟的显示字体start(); //开始进程setSize(280,100); //设置窗口尺寸setVisible(true); //窗口可视setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 }(4)添加时钟的开始、运行和停止的方法,代码如下所示。

(5)添加时钟paint()方法和对窗口进行初始化,全部代码如下所示。

elsetimeInfo+=second;g.setColor(Color.white); //设置当前颜色为白色Dimension dim=getSize(); //得到窗口尺寸g.fillRect(0,0,dim.width,dim.height); //填充背景色为白色g.setColor(Color.orange); //设置当前颜色为橙色g.drawString(timeInfo,20,80); //显示时间字符串}public static void main(String[] args){new ClockDemo();}}(6)执行上述代码,结果如图10-21所示。

Java实现的简单数字时钟功能示例

Java实现的简单数字时钟功能示例

Java实现的简单数字时钟功能⽰例本⽂实例讲述了Java实现的简单数字时钟功能。

分享给⼤家供⼤家参考,具体如下:应⽤名称:Java数字时钟⽤到的知识:Java GUI编程,线程开发环境:win8+eclipse+jdk1.8功能说明:可以显⽰当前系统的年⽉⽇、星期以及准确时间,并实时更新显⽰。

效果图:源代码:import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.BorderLayout;import javax.swing.JLabel;import java.awt.Font;import java.text.SimpleDateFormat;import java.util.Date;public class Time extends JFrame implements Runnable{/****/private static final long serialVersionUID = 1L;private JLabel date;private JLabel time;public Time() {//初始化图形界⾯this.setVisible(true);this.setTitle("数字时钟");this.setSize(282, 176);this.setLocation(200, 200);this.setResizable(true);JPanel panel = new JPanel();getContentPane().add(panel, BorderLayout.CENTER);panel.setLayout(null);//时间time = new JLabel();time.setBounds(31, 54, 196, 59);time.setFont(new Font("Arial", Font.PLAIN, 50));panel.add(time);//⽇期date = new JLabel();date.setFont(new Font("微软雅⿊", Font.PLAIN, 13));date.setBounds(47, 10, 180, 22);panel.add(date);}//⽤⼀个线程来更新时间public void run() {while(true){try{date.setText(new SimpleDateFormat("yyyy 年 MM ⽉ dd ⽇ EEEE").format(new Date()));time.setText(new SimpleDateFormat("HH:mm:ss").format(new Date()));}catch(Throwable t){t.printStackTrace();}}}public static void main(String[] args) {new Thread(new Time()).start();}}PS:这⾥再为⼤家推荐⼏款时间及⽇期相关⼯具供⼤家参考使⽤:更多关于java相关内容感兴趣的读者可查看本站专题:《》、《》、《》和《》希望本⽂所述对⼤家java程序设计有所帮助。

JAVA简单转盘时钟

JAVA简单转盘时钟

package shiyan;import java.awt.Font;import java.awt.Graphics;import java.util.Calendar;import java.util.GregorianCalendar;import javax.swing.JFrame;import javax.swing.JPanel;public class shizhong extends JFrame{public shizhong(){ //窗体的设置// Font jf = new Font(null,Font.BOLD,30);// this.setFont(jf);this.setTitle("时钟");ClockPanel jp_clock = new ClockPanel();this.add(jp_clock);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 400);this.setVisible(true);//线程的设置及启动Thread ClockRun = new Thread(jp_clock);ClockRun.start();}public static void main(String[] args) {new shizhong();}}class ClockPanel extends JPanel implements Runnable{//表的中间private double CenterX,CenterY;private double Radius = 150;//小时,分钟,秒的针头坐标private double HPointX,HPointY,MPointX,MPointY,SPointX,SPointY;private int Year,Month,Day,WeekDay,Hour,Minute,Second;private final double PI = Math.PI;public synchronized void paintComponent(Graphics g){super.paintComponent(g);CenterX = this.getWidth()/2;CenterY = this.getHeight()/2;double HRadian = (PI/6)*Hour + (PI/360)* Minute + (PI/21600)* Second;double MRadian = (PI/30)*Minute + (PI/1800) * Second;double SRadian = (PI/30)* Second;HPointX = CenterX + Radius * 0.6 * Math.sin(HRadian);HPointY = CenterY - Radius * 0.6 * Math.cos(HRadian);MPointX = CenterX + Radius * 0.8 * Math.sin(MRadian);MPointY = CenterY - Radius * 0.8 * Math.cos(MRadian);SPointX = CenterX + Radius * Math.sin(SRadian);SPointY = CenterX - Radius * Math.cos(SRadian);g.drawOval((int)(CenterX - Radius), (int)(CenterY - Radius),(int)(2*Radius),(int)(2*Radius));g.drawString("12",(int)(CenterX),(int)(CenterY - Radius) + 10 );g.drawString("3", (int)(CenterX + Radius)- 6,(int)(CenterY));g.drawString("6", (int)(CenterX),(int)(CenterY + Radius));g.drawString("9", (int)(CenterX - Radius),(int)(CenterY) );g.drawLine((int)(CenterX),(int)(CenterY),(int)(SPointX),(int)(SPointY));g.drawLine((int)(CenterX),(int)(CenterY),(int)(MPointX),(int)(MPointY));g.drawLine((int)(CenterX),(int)(CenterY),(int)(HPointX),(int)(HPointY));g.drawString("星期" + WeekDay, 30, 320);g.drawString(Year + " 年" + Month + " 月" + Day + " 日" + Hour + ":" + Minute + ":" + Second, 20, 350);}@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){try{setCurrentTime();repaint();Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}}}public void setCurrentTime(){//获得时间Calendar calendar = new GregorianCalendar();Year = calendar.get(Calendar.YEAR);Month = calendar.get(Calendar.MONTH);Day = calendar.get(Calendar.DAY_OF_MONTH);WeekDay = calendar.get(Calendar.DAY_OF_WEEK);Hour = calendar.get(Calendar.HOUR);Minute = calendar.get(Calendar.MINUTE);Second = calendar.get(Calendar.SECOND);}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package shiyan;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class shizhong extends JFrame{
public shizhong()
{ //窗体的设置
// Font jf = new Font(null,Font.BOLD,30);
// this.setFont(jf);
this.setTitle("时钟");
ClockPanel jp_clock = new ClockPanel();
this.add(jp_clock);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 400);
this.setVisible(true);
//线程的设置及启动
Thread ClockRun = new Thread(jp_clock);
ClockRun.start();
}
public static void main(String[] args) {
new shizhong();
}
}
class ClockPanel extends JPanel implements Runnable
{
//表的中间
private double CenterX,CenterY;
private double Radius = 150;
//小时,分钟,秒的针头坐标
private double HPointX,HPointY,MPointX,MPointY,SPointX,SPointY;
private int Year,Month,Day,WeekDay,Hour,Minute,Second;
private final double PI = Math.PI;
public synchronized void paintComponent(Graphics g)
{
super.paintComponent(g);
CenterX = this.getWidth()/2;
CenterY = this.getHeight()/2;
double HRadian = (PI/6)*Hour + (PI/360)* Minute + (PI/21600)* Second;
double MRadian = (PI/30)*Minute + (PI/1800) * Second;
double SRadian = (PI/30)* Second;
HPointX = CenterX + Radius * 0.6 * Math.sin(HRadian);
HPointY = CenterY - Radius * 0.6 * Math.cos(HRadian);
MPointX = CenterX + Radius * 0.8 * Math.sin(MRadian);
MPointY = CenterY - Radius * 0.8 * Math.cos(MRadian);
SPointX = CenterX + Radius * Math.sin(SRadian);
SPointY = CenterX - Radius * Math.cos(SRadian);
g.drawOval((int)(CenterX - Radius), (int)(CenterY - Radius),(int)(2*Radius),(int)(2*Radius));
g.drawString("12",(int)(CenterX),(int)(CenterY - Radius) + 10 );
g.drawString("3", (int)(CenterX + Radius)- 6,(int)(CenterY));
g.drawString("6", (int)(CenterX),(int)(CenterY + Radius));
g.drawString("9", (int)(CenterX - Radius),(int)(CenterY) );
g.drawLine((int)(CenterX),(int)(CenterY),(int)(SPointX),(int)(SPointY));
g.drawLine((int)(CenterX),(int)(CenterY),(int)(MPointX),(int)(MPointY));
g.drawLine((int)(CenterX),(int)(CenterY),(int)(HPointX),(int)(HPointY));
g.drawString("星期" + WeekDay, 30, 320);
g.drawString(Year + " 年" + Month + " 月" + Day + " 日" + Hour + ":" + Minute + ":" + Second, 20, 350);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
try{
setCurrentTime();
repaint();
Thread.sleep(1000);
}catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
public void setCurrentTime()
{
//获得时间
Calendar calendar = new GregorianCalendar();
Year = calendar.get(Calendar.YEAR);
Month = calendar.get(Calendar.MONTH);
Day = calendar.get(Calendar.DAY_OF_MONTH);
WeekDay = calendar.get(Calendar.DAY_OF_WEEK);
Hour = calendar.get(Calendar.HOUR);
Minute = calendar.get(Calendar.MINUTE);
Second = calendar.get(Calendar.SECOND);
}
}。

相关文档
最新文档