• qtdfyz
    了解作者
  • Java
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 6
    下载次数
  • 2009-11-21 22:44
    上传日期
我的课程设计 编的一个关于时钟的程序,可以实现定时,节日提醒等功能
clock.rar
  • clock.java
    5.6KB
内容介绍
//applet import java.awt.*; import java.applet.*; import java.util.Date; //这是Java中的低级实用工具包,可以处理时间等内容。 public class Applet1 extends Applet implements Runnable //有线程运行接口 { Date timenow; //Date是一个时间定义与创建函数. Clock myClock; //用户自定义的类 Thread clockthread=null; //设置一个线程 public void start() //线程开始的类 { if (clockthread==null) //如果线程为空,则 { clockthread=new Thread (this); //开始新的线程 clockthread.start(); //开始 } } public void stop() //终止线程 { clockthread.stop(); //终止线程,使它 clockthread=null; //为空 } public void run() //运行线程 { while(true) //一个死循环,条件永远都是真的。 { repaint(); //重新绘制界面 try{Thread.sleep(1000);} //让线程沉睡1000毫秒,也就是一秒钟 catch(InterruptedException e){} //捕获异常(也就是错误) } } public void paint(Graphics g) { timenow=new Date(); //新的时间的获得 //获得小时,分钟,秒钟 myClock=new Clock(timenow.getHours (), timenow.getMinutes (), timenow.getSeconds ()); g.drawString(timenow.toString(),25,240);//将它打印出来! myClock.show(g,100,100,100); //使面板显示 } } class Clock //用户自定义的类开始,编译后,它单独成为一个CLASS文件 { Clock(int hrs,int min,int sec) //类函数入口 { hour=hrs%12; //将原始数据处理,得到小时 minute=min; //将原始数据处理,得到分钟 second=sec; //将原始数据处理,得到小时 } void show(Graphics g,int cx,int cy,int rad) //重新定义SHOW函数 { int hrs_len=(int)(rad*0.5), //时针的长度 min_len=(int)(rad*0.6), //分钟的长度 sec_len=(int)(rad*0.9); //秒钟的长度 double theta; //画出钟面 g.drawOval(cx-rad,cy-rad,rad*2,rad*2); //画出时针 theta=(double)(hour*60*60+minute*60+second)/43200.0*2.0*Math.PI ; drawNiddle(g,Color.blue,cx,cy,hrs_len,theta); //画出分针 theta=(double)(minute*60+second)/3600.0*2.0*Math.PI ; drawNiddle(g,Color.red,cx,cy,sec_len,theta); //画出秒针 theta=(double)(second)/60.0*2.0*Math.PI ; drawNiddle(g,Color.green ,cx,cy,sec_len,theta); } private void drawNiddle(Graphics g,Color c,int x,int y,int len,double theta) { int ex=(int)(x+len*Math.sin(theta)); int ey=(int)(y-len*Math.cos(theta)); g.setColor (c); g.drawLine(x,y,ex,ey); } int hour,minute,second; } //java import java.awt.*; import javax.swing.*; import java.util.*; import java.text.*; public class Clock extends JPanel implements Runnable{ private JLabel jl; private DateFormat df; public Clock(){ jl=new JLabel(); jl.setHorizontalAlignment(JLabel.CENTER); df=DateFormat.getDateTimeInstance(); new Thread(this).start(); this.setLayout(new BorderLayout()); this.add(jl,BorderLayout.SOUTH); } public void run(){ while(true){ try{ Thread.sleep(1000); } catch(InterruptedException ie){ ie.printStackTrace(); } jl.setText(df.format(new Date())); repaint(); } } public void paintComponent(Graphics g){ super.paintComponent(g); Calendar cal=Calendar.getInstance(); //?????????????? int hour=cal.get(Calendar.HOUR); int minute=cal.get(Calendar.MINUTE); int second=cal.get(Calendar.SECOND); //?????????????С??? int width=this.getWidth(); int height=this.getHeight(); //??????????}?????С????? int small=width<height?width:height; int diameter=(int)(small*0.8); int radius=diameter/2; //???????? Point center=new Point(width/2,height/2); //??????????????????? int secondLength=(int)(radius*0.8); int minuteLength=(int)(secondLength*0.8); int hourLength=(int)(minuteLength*0.8); //??????????????????????? int secondX=center.x+(int)(secondLength*Math.sin(second*2*Math.PI/60.0)); int secondY=center.y-(int)(secondLength*Math.cos(second*2*Math.PI/60.0)); int minuteX=center.x+(int)(minuteLength*Math.sin(minute*2*Math.PI/60.0)); int minuteY=center.y-(int)(minuteLength*Math.cos(minute*2*Math.PI/60.0)); int hourX=center.x+(int)(hourLength*Math.sin((minute/60.0+hour)*Math.PI/6.0)); int hourY=center.y-(int)(hourLength*Math.cos((minute/60.0+hour)*Math.PI/6.0)); Graphics2D g2d=(Graphics2D)g; //????????? g.drawOval(center.x-radius,center.y-radius,diameter,diameter); for(int i=0;i<60;i++){ int x2=center.x+(int)(radius*Math.sin(i*2*Math.PI/60.0)); int y2=center.y-(int)(radius*Math.cos(i*2*Math.PI/60.0)); if(i%5==0){ int x1=center.x+(int)((secondLength+1)*Math.sin(i*2*Math.PI/60.0)); int y1=center.y-(int)((secondLength+1)*Math.cos(i*2*Math.PI/60)); g.drawString(i==0?"12":String.valueOf(i/5),x1,y1); // << attention here g2d.setStroke(new BasicStroke(2.5f)); g2d.drawLine(x1,y1,x2,y2); } else{ int x1=center.x+(int)((secondLength+10)*Math.sin(i*2*Math.PI/60.0)); int y1=center.y-(int)((secondLength+10)*Math.cos(i*2*Math.PI/60)); g2d.setStroke(new BasicStroke(0.8f)); g2d.drawLine(x1,y1,x2,y2); } } //????????????? g2d.setColor(Color.RED); g2d.setStroke(new BasicStroke(3.0f)); g2d.drawLine(center.x,center.y,hourX,hourY); g2d.setColor(Color.BLUE); g2d.setStroke(new BasicStroke(1.5f)); g2d.drawLine(center.x,center.y,minuteX,minuteY); g2d.setColor(Color.MAGENTA); g2d.setStroke(new BasicStroke(1.0f)); g2d.drawLine(center.x,center.y,secondX,secondY); } public static void main(String args[]){ JFrame jf=new JFrame("???"); jf.getContentPane().add(new Clock(),BorderLayout.CENTER); jf.setBounds(300,300,300,300); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
评论
    相关推荐
    • JAVA万年历 课程设计
      java课程设计 万年历 实验报告 电子书 格式
    • java记事本程序设计
      java记事本程序设计,一共三个不同的java记事本程序源代码
    • java编程实现时钟
      java编程实现一个时钟视图,用于显示当前时间的实例。
    • 时钟JAVA程序的设计
      时钟JAVA程序设计,实现在网页上打开现在的时间。
    • 时钟日历java
      java设计时钟日历
    • Java课程设计时钟日历
      Java课程设计时钟日历,很好用的,很好,可以给广大朋友们参考
    • java课程设计音乐时钟
      java写成的精美音乐时钟 可以调整闹钟背景音乐 自己设置几首音乐就好,可以修改表盘,时针的颜色, 并且设置字母 可以更换
    • Java设计简单时钟
      Java代码设计简单的时钟。这里给出了源代码与运行的效果图示。
    • Java语言编写显示时钟Java Applet
      这是一个JavaGUI程序设计的完整作品 1.带完整的报告 2.带详细的使用方法 ...这是一个显示时钟java Applet 用JavaGUI编程实现 能实现机械表面和电子表面的单机切换 能实现与网页文件的交互选择改变市区
    • 时钟程序-java课程设计
      编写时钟程序,要求画出时钟面板,时针,分针,秒针,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与声音提示功能。java 《面向对象程序设计》课程设计