/*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类,在html页面上会显示一个时钟,很好的类
这个"java写的时钟"小程序可能包含了Java语言的核心概念,如类、对象、线程以及时间日期API的使用。下面我们将深入探讨这些知识点。 首先,让我们了解Java中的类和对象。在Java中,一切皆为对象,而类是创建对象的...
这个名为“用java写的时钟显示”的程序显然就是这样一个实用工具,它能够帮助用户方便地查看系统的时间信息。在这个项目中,开发者可能利用了Java丰富的API库来实现这一功能。 首先,我们来探讨Java中的日期和时间...
Java时钟程序可以设置闹钟,更改显示风格等
Java时钟小程序是一种基于Java编程语言开发的应用程序,它的主要功能是实时显示当前的系统时间。这个小程序在设计上利用了Java丰富的API和面向对象的特性,为用户提供了一个直观、简洁的时间显示界面。 首先,我们...
Java图形界面时钟是一种利用Java编程语言开发的GUI(图形用户界面)应用程序,它能够模拟现实世界中的机械钟,展示当前的时间。在这个程序中,开发者通过设计和实现一个美观的界面,增强了用户的视觉体验,使其在...
通过java代码做的一个时钟,与本地时间一致通过java代码做的一个时钟,与本地时间一致
Java时钟可能使用了Swing组件如JFrame作为主窗口,JLabel或JTextArea来显示时间,或者使用JavaFX的Scene和Nodes来构建更现代、更丰富的界面。 2. **多线程**:为了使时钟实时更新,程序需要在后台持续运行一个线程...
1. **Java Applet**: 是一种可以在Web页面上运行的小应用程序。它通过浏览器插件在客户端执行,允许开发者创建交互式的Web内容。 2. **Swing/AWT**: Java中的图形用户界面库,用于创建GUI应用程序。此程序使用了AWT...
JAVA时钟 源代码
本项目“java GUI时钟小程序”利用Java Swing构建了一个简单易用的时钟应用程序,为对Swing感兴趣的开发者提供了一次实践机会。 在Java Swing中,创建GUI主要通过定义组件(JComponent的子类),如JFrame、JLabel等...
本项目是一个简单的"时钟小工具",利用Java的基本语法和GUI(图形用户界面)库来实现。尽管这个小工具可能在设计上显得较为初级,但它仍然是学习Java编程和理解GUI设计的一个良好起点。 在Java中,我们可以使用...
在Java编程语言中,日历(Calendar)和时钟(Clock)是处理日期和时间的重要工具。本主题将深入探讨这两个概念以及如何在Java中进行模拟。Java的日期和时间API经历了多次演变,从早期的`java.util.Date`和`java.util...
创建一个Java时钟的基本步骤如下: 1. 引入必要的库:首先,在Java程序中,我们需要导入javax.swing.*库,因为它包含了创建GUI所需的所有类,包括JFrame和JLabel。 ```java import javax.swing.*; ``` 2. 创建...
Java数字时钟是一种基于Java编程语言实现的时钟应用程序,它可以显示当前时间并通常具有一定的可视化效果。在Java中创建数字时钟涉及到多个关键知识点,包括图形用户界面(GUI)、事件处理、线程管理和时间日期处理...
Java 实现数字时钟是一种常见的编程练习,它可以帮助开发者熟悉日期和时间处理、线程以及用户界面设计等概念。在这个项目中,我们将讨论如何利用Java语言来创建一个实时更新的数字时钟,显示电脑的当前时间。 首先...
Java真图时钟是一个基于Java编程语言实现的模拟时钟应用。这个项目展示了如何在Java中利用图形用户界面(GUI)来创建一个实时更新的时钟。以下是对这个项目涉及的知识点的详细解释: 1. **Java GUI**:Java GUI...
在这个特定的项目“java实现模拟时钟”中,开发者使用Swing构建了一个能够显示当前时间的模拟时钟。Swing提供了一系列组件,如JFrame、JLabel等,可以方便地构建出丰富的用户界面。 1. **Swing基础**: Swing是...