`
rainytimes
  • 浏览: 7375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 写的小时钟

    博客分类:
  • J2SE
阅读更多
/*java 写的小时钟

Email:shun_shun@21cn.com
 

三叶

*/


import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
public class Watch extends Frame {

/**
   * @param args
   */


final int ScreenSize=400;

double h,m,s;
int year,month,day,week;
String str;
Calendar cal;
Font f=new Font("楷体_GB2312",1,30);
Image   img=Toolkit.getDefaultToolkit().getImage("b.gif");
Image offScreenImage=null;
     final double corner=Math.PI/30;
//g.fillOval(15, 40, ScreenSize-20, ScreenSize-20);
final int centerx=15+(ScreenSize-20)/2;
final int centery=40+(ScreenSize-20)/2;

final int hlength=100,mlength=125,slength=140;

public void setFrame(){
  
   this.addWindowListener(new WindowAdapter(){

    @Override
    public void windowClosing(WindowEvent arg0) {
     // TODO Auto-generated method stub
     System.exit(0);
    }
   
   
   });
  
   this.setSize(ScreenSize+10,ScreenSize+40);
   this.setLocation(200, 200);
   this.setResizable(false);
   this.setTitle("钟表");
   this.setVisible(true);
  
     
   Thread t=new Thread(new SetDate());
   t.start();
  
  
} 

   public void paint(Graphics g){
   
      Color c=g.getColor();
      Font fb=g.getFont();
      h=cal.get(Calendar.HOUR);
   m=cal.get(Calendar.MINUTE);
   s=cal.get(Calendar.SECOND);
  
  
  
   year=cal.get(Calendar.YEAR);
   month=cal.get(Calendar.MONTH)+1;
   day=cal.get(Calendar.DAY_OF_MONTH);
   week=cal.get(Calendar.DAY_OF_WEEK);
  
   g.drawString(year+"-"+month+"-"+day+"   "+week, 100, 100);
  
   g.setFont(f);
      
   str=Double.valueOf(h).intValue()+" : "+Double.valueOf(m).intValue()+" : "+Double.valueOf(s).intValue();
  
   g.setFont(fb);
  
   g.fillOval(5,30, ScreenSize, ScreenSize);
  
   g.setColor(Color.white);
   g.fillOval(15, 40, ScreenSize-20, ScreenSize-20);
   g.setColor(c);
   g.setFont(f);

  
   g.setFont(fb);
   g.setColor(Color.red);
   g.drawString(str, 10, 50);
   g.setColor(c);
  

  
   int x1,y1;
   int j=0;
   g.setFont(f);
   for(int i=0;i<60;){
   
     x1=centerx+Double.valueOf(175*Math.sin(i*corner)).intValue()-12;
     y1=centery-Double.valueOf(175*Math.cos(i*corner)).intValue()+10;
    if(j!=0)g.drawString(String.valueOf(j), x1, y1);else{g.drawString("12", x1, y1);}
    j++;
     i+=5;
   
    }
   g.setFont(fb);
   for(int i=0;i<60;i++){
    x1=centerx+Double.valueOf(155*Math.sin(i*corner)).intValue();
    y1=centery-Double.valueOf(155*Math.cos(i*corner)).intValue();
   if(i%5!=0)g.fillOval(x1, y1, 5, 5);
   else{
    g.setColor(Color.red);
    g.fillOval(x1-1, y1-1, 8, 8);
    g.setColor(c);
   };
   }
  
   Graphics2D g2d=(Graphics2D)g;
   BasicStroke bs=(BasicStroke)g2d.getStroke();
  
    
   g2d.setStroke(new BasicStroke(2.0f));
    x1=centerx+Double.valueOf(slength*Math.sin(s*corner)).intValue();
    y1=centery-Double.valueOf(slength*Math.cos(s*corner)).intValue();
   g.drawLine(x1, y1, centerx, centery);
  
   g2d.setStroke(new BasicStroke(4.0f));
    x1=centerx+Double.valueOf(mlength*Math.sin((m+s/60)*corner)).intValue();
    y1=centery-Double.valueOf(mlength*Math.cos((m+s/60)*corner)).intValue();
   g.drawLine(x1, y1, centerx, centery);
  
   g2d.setStroke(new BasicStroke(8.0f));
    x1=centerx+Double.valueOf(hlength*Math.sin(5*(h+m/60)*corner)).intValue();
    y1=centery-Double.valueOf(hlength*Math.cos(5*(h+m/60)*corner)).intValue();
   g.drawLine(x1, y1, centerx, centery);
  
   g2d.setStroke(bs);
  
  
  
     g.setColor(Color.black);
    g.fillOval(centerx-6, centery-6, 12, 12);
    g.setColor(Color.red);
    g.fillOval(centerx-2, centery-2, 4, 4);
    g.setColor(c);
    g.setFont(new Font("楷体_GB2312",1,20));
    g.drawString(year+"年"+month+"月"+day+"日", 135, 300);
    g.drawString("星期"+week, 170, 330);
       g.setFont(fb);
   //g.drawLine(15+(ScreenSize-20)/2, 0, 15+(ScreenSize-20)/2, this.getHeight());
   //g.drawLine(0, 40+(ScreenSize-20)/2, this.getWidth(), 40+(ScreenSize-20)/2);

   }
  
  
   public void paintfinger(int s,Graphics g){

    int x1=centerx+Double.valueOf(slength*Math.sin(s*corner)).intValue();
   int y1=centery-Double.valueOf(slength*Math.cos(s*corner)).intValue();
   g.drawLine(x1, y1, centerx, centery);
   
   
   }
  
   public void update(Graphics g){
    if(offScreenImage==null){
   
    offScreenImage=this.createImage(ScreenSize+40,ScreenSize+40);
    }
  
  
   Graphics goffScreenImage=offScreenImage.getGraphics();
  
   Color c=g.getColor();
   goffScreenImage.setColor(Color.green);
   goffScreenImage.fillRect(0, 0, 500,500);
   goffScreenImage.setColor(c);
      this.paint(goffScreenImage);
      g.drawImage( offScreenImage,0,0, null);
     
    

   
   }


public static void main(String[] args) {
  
   Watch f=new Watch();
   f.setFrame();

  

}

   class SetDate implements Runnable{
   
   
   
   
    public void run() {
    while(true) {
     repaint();
     cal=Calendar.getInstance();
    
     try {
      Thread.sleep(200);
     } catch (InterruptedException e) {
      // TODO 自动生成 catch 块
      e.printStackTrace();
     }
   
           }
     }

    }




} 



分享到:
评论

相关推荐

    java写的一个时钟小程序

    java 写的 时钟小程序 代码注释详细 代码 拿了 就能用

    用java写的时钟类,很好的。。。。

    很好的java来的写时钟很好的java来的写时钟很好的java类来的写时钟 这是一个java类,在html页面上会显示一个时钟,很好的类

    java写的时钟 java 时钟

    这个"java写的时钟"小程序可能包含了Java语言的核心概念,如类、对象、线程以及时间日期API的使用。下面我们将深入探讨这些知识点。 首先,让我们了解Java中的类和对象。在Java中,一切皆为对象,而类是创建对象的...

    用java写的时钟显示

    这个名为“用java写的时钟显示”的程序显然就是这样一个实用工具,它能够帮助用户方便地查看系统的时间信息。在这个项目中,开发者可能利用了Java丰富的API库来实现这一功能。 首先,我们来探讨Java中的日期和时间...

    Java写的时钟程序

    Java时钟程序可以设置闹钟,更改显示风格等

    Java时钟小程序

    Java时钟小程序是一种基于Java编程语言开发的应用程序,它的主要功能是实时显示当前的系统时间。这个小程序在设计上利用了Java丰富的API和面向对象的特性,为用户提供了一个直观、简洁的时间显示界面。 首先,我们...

    java图形界面时钟

    Java图形界面时钟是一种利用Java编程语言开发的GUI(图形用户界面)应用程序,它能够模拟现实世界中的机械钟,展示当前的时间。在这个程序中,开发者通过设计和实现一个美观的界面,增强了用户的视觉体验,使其在...

    java实现小时钟

    通过java代码做的一个时钟,与本地时间一致通过java代码做的一个时钟,与本地时间一致

    JAVA写的精美时钟

    Java时钟可能使用了Swing组件如JFrame作为主窗口,JLabel或JTextArea来显示时间,或者使用JavaFX的Scene和Nodes来构建更现代、更丰富的界面。 2. **多线程**:为了使时钟实时更新,程序需要在后台持续运行一个线程...

    用java编写的时钟小程序

    1. **Java Applet**: 是一种可以在Web页面上运行的小应用程序。它通过浏览器插件在客户端执行,允许开发者创建交互式的Web内容。 2. **Swing/AWT**: Java中的图形用户界面库,用于创建GUI应用程序。此程序使用了AWT...

    JAVA时钟 源代码

    JAVA时钟 源代码

    java GUI时钟小程序

    本项目“java GUI时钟小程序”利用Java Swing构建了一个简单易用的时钟应用程序,为对Swing感兴趣的开发者提供了一次实践机会。 在Java Swing中,创建GUI主要通过定义组件(JComponent的子类),如JFrame、JLabel等...

    用java做的 时钟 小工具

    本项目是一个简单的"时钟小工具",利用Java的基本语法和GUI(图形用户界面)库来实现。尽管这个小工具可能在设计上显得较为初级,但它仍然是学习Java编程和理解GUI设计的一个良好起点。 在Java中,我们可以使用...

    java日历与时钟

    在Java编程语言中,日历(Calendar)和时钟(Clock)是处理日期和时间的重要工具。本主题将深入探讨这两个概念以及如何在Java中进行模拟。Java的日期和时间API经历了多次演变,从早期的`java.util.Date`和`java.util...

    java做的时钟

    创建一个Java时钟的基本步骤如下: 1. 引入必要的库:首先,在Java程序中,我们需要导入javax.swing.*库,因为它包含了创建GUI所需的所有类,包括JFrame和JLabel。 ```java import javax.swing.*; ``` 2. 创建...

    Java数字时钟

    Java数字时钟是一种基于Java编程语言实现的时钟应用程序,它可以显示当前时间并通常具有一定的可视化效果。在Java中创建数字时钟涉及到多个关键知识点,包括图形用户界面(GUI)、事件处理、线程管理和时间日期处理...

    java实现数字时钟

    Java 实现数字时钟是一种常见的编程练习,它可以帮助开发者熟悉日期和时间处理、线程以及用户界面设计等概念。在这个项目中,我们将讨论如何利用Java语言来创建一个实时更新的数字时钟,显示电脑的当前时间。 首先...

    java真图时钟.zip_JAVA时钟_java 时钟_时钟 java_时钟 java

    Java真图时钟是一个基于Java编程语言实现的模拟时钟应用。这个项目展示了如何在Java中利用图形用户界面(GUI)来创建一个实时更新的时钟。以下是对这个项目涉及的知识点的详细解释: 1. **Java GUI**:Java GUI...

    java实现模拟时钟

    在这个特定的项目“java实现模拟时钟”中,开发者使用Swing构建了一个能够显示当前时间的模拟时钟。Swing提供了一系列组件,如JFrame、JLabel等,可以方便地构建出丰富的用户界面。 1. **Swing基础**: Swing是...

Global site tag (gtag.js) - Google Analytics