阅读更多

26顶
1踩

编程语言

原创新闻 Swing Worldclock - 世界时钟效果

2010-02-21 15:21 by 副主编 zly06 评论(12) 有10452人浏览

不久前,我们介绍过Gerrit创建的一个swing Nixieclock原子钟效果,今天要介绍他的一个新作—Swing Worldclock


 

 

Step #1
创建两个模拟的clock组件:



 

使用NetBeans,可以轻松的将swing组件移入JPanel或JFrame中。NetBeans_Swing.mov

 

你可以轻松的使用drag stuff创建新组件。

 

Step #2

创建一个包含clock和城市名的JPanel。如果在列表中找不到你所在的城市,你可以根据时区进行添加。

01	public enum City
02	{
03	    // -12
04	    Wellington("Wellington", -43200000),
05	    Fidschi("Fidschi", -43200000),
06	    Kamtschatka("Kamtschatka", -43200000),
07	    // -11
08	    Magadan("Magadan", -39600000),
09	    Sachalin("Sachalin", -39600000),
10	    Salomoninseln("Salmoninseln", -39600000),
11	    Malekula("Malekula", -39600000),
12	    // -10
13	    Wladiwostok("Wladiwostok", -36000000),
14	    Guam("Guam", -36000000),
15	    Sydney("Sydney", -36000000),
16	    Brisbane("Brisbane", -36000000),
17	    Melbourne("Melbourne", -36000000),
18	    // -9.5
19	    Darwin("Darwin", -34200000),
20	    Adelaide("Adelaide", -34200000),
21	    // -9
22	    ...
23	}
 

使用JPanel,添加不同的状态:

  • Sunrise    ishot-8.png
  • Day         ishot-5.png
  • Sunset     ishot-6.png
  • Night       ishot-7.png

使用JLabel,添加:

  • yesterday
  • today
  • tomorrow


Step #3

创建一个背景容器:


 

Step #4

在NetBeans中创建JFrame 并将其拖入背景容器中:


 

Step #5

你可以请其做出一个手表那样:

 



创建另一个模拟时钟组件。使用圆形来代表日夜循环:

 

 

部分代码:

 

01	// Define the center of the cone
02	final java.awt.geom.Point2D CENTER = new java.awt.geom.Point2D.Double(IMAGE.getWidth() / 2, IMAGE.getHeight() / 2);
03	 
04	// Define the fractions for the colors
05	final float[] FRACTIONS =
06	{
07	    0.0f,
08	    0.10f,
09	    0.14f,
10	    0.18f,
11	    0.32f,
12	    0.68f,
13	    0.82f,
14	    0.86f,
15	    0.90f,
16	    1.0f
17	};
18	 
19	// Define the colors for the fractions
20	final java.awt.Color[] COLORS =
21	{
22	    new java.awt.Color(0x000000),
23	    new java.awt.Color(0x000000),
24	    new java.awt.Color(0x332200),
25	    new java.awt.Color(0x664411),
26	    new java.awt.Color(0x85A4C3),
27	    new java.awt.Color(0x85A4C3),
28	    new java.awt.Color(0x004466),
29	    new java.awt.Color(0x002233),
30	    new java.awt.Color(0x000000),
31	    new java.awt.Color(0x000000)
32	};
33	 
34	// Define the ConicalGradientPaint with the given parameters
35	final ConicalGradientPaint CONICAL_GRADIENT_PAINT = new ConicalGradientPaint(CENTER, FRACTIONS, COLORS);
36	 
37	// Set the paint
38	g2.setPaint(CONICAL_GRADIENT_PAINT);
39	 
40	// Fill a ellipse with the gradient
41	g2.fill(new java.awt.geom.Ellipse2D.Double(0, 0, IMAGE.getWidth(), IMAGE.getHeight()));

 

运行此代码的结果:


 

其余效果:

 

最终效果图:



你可以点击此处,下载源代码:WorldClock.zip

 

查看更多详情:http://www.jug-muenster.de/swing-worldclock-427/

 

 

 

  • 大小: 61.3 KB
  • 大小: 47.1 KB
  • 大小: 27.6 KB
  • 大小: 54.9 KB
  • 大小: 33.8 KB
  • 大小: 11.8 KB
  • 大小: 4 KB
  • 大小: 8.9 KB
  • 大小: 51.8 KB
  • 大小: 10.1 KB
  • 大小: 46.2 KB
来自: jug-muenster
26
1
评论 共 12 条 请登录后发表评论
12 楼 jack547155187 2010-09-13 11:34
靠,把swing抛弃了,用什么做GUI
11 楼 lizhuang 2010-02-23 18:22
太棒啦。。就是没多大用处啊。。
10 楼 shinezhou 2010-02-23 09:22
不错。


9 楼 yexin218 2010-02-22 17:56
great
8 楼 xiasha5566 2010-02-22 16:28
很漂亮 
7 楼 chenxiang87118 2010-02-22 15:04
看着效果不错,可实际上这些东西用的不多。
6 楼 yuriyan 2010-02-22 13:18
javagui 写道
huanggang212 写道
很漂亮,但是oracle貌似已经打算抛弃swing了

放 屁

哪里的消息。。。
5 楼 yidao620c 2010-02-22 09:56
mayufenga1 写道
太棒啦。。就是没多大用处啊。。

那你说什么有用呢?
4 楼 javagui 2010-02-22 09:44
huanggang212 写道
很漂亮,但是oracle貌似已经打算抛弃swing了

放 屁
3 楼 huanggang212 2010-02-22 09:34
很漂亮,但是oracle貌似已经打算抛弃swing了
2 楼 xieyongwei 2010-02-22 09:33
时钟的设计
关键是时间走动的精准性
要注意程序运行的消耗
在 一本关于java线程编程的书中有详细的说明和解决办法。
1 楼 mayufenga1 2010-02-22 08:59
太棒啦。。就是没多大用处啊。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • .NET MVC 中关于Action的参数

    对于boolean类型的参数(或者Model的属性),如果使用checkbox,则value必须是"true",否则值永远是false。对于double、int等类型会自动进行类型转换。 1 一个Controller可以有多个方法,这些方法叫Action。通过...

  • java dbmanager

    java dbmanager

  • java databasemanager_javabean: Database Manager

    /*** 大家用的时候只需要把配置文件里的内容改掉就可以啦!** 配置文件Database.Property内容* jdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver* jdbc.url=jdbc:odbc:mydata* jdbc.username=system* jdbc.password=manager**/packagepro03;// package co...

  • python pyquery中如何只获取英文汉字和数字_Python中PyQuery库的使用总结

    struts2 Action获取表单传值(属性,类)) http://blog.csdn.net/sd0902/article/details/8393157 求大神告知两种方法的不同点 都是写个set方法就行了 Window下通过CuteFTP与Linux虚拟机连接失败的原因总结及解决...

  • 解决form表单数据提交不到servlet中去的问题

    servlet用的baseservlet继承,反射获取url地址中的method的地址 @WebServlet("/orders") public class OrderServlet extends BaseServlet{ // 3.增加配送通知单 public void...

  • JavaWeb中request.getParameterMap()如何获取其中的数据

    JavaWeb中request.getParameterMap(),使用BeanUtils工具类封装请求参数 环境Tomcat,java语言 我用客户端发送了一个Map<String,Strinig> map类型的请求参数,想把其中的数据写到数据库,但是发现request....

  • 请教:我用的jbuilder,struts架构,在action中的session赋中文值以后,回到jsp中,从session中取出的值为乱码,如何解决?

    在这个系统中,输入途径有很多种:一种是通过页面表单打包成请求(request)发往服务器的;第二种是通过数据库读入;还有第3种输入比较复杂,JSP在第一次运行时总是被编译成Servlet,JSP中常常包含中文字符,那么...

  • Java面试题全集(中)

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上...

  • java面试题(96~125)《中》

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上...

  • 【转载】表单中 Readonly 和 Disabled 的区别

    今天写代码,遇到表单提交的问题,某个字段在不同的情况下,要传递不同的值进行赋值,试过一些方法都有些问题,后来请教前端同学,使用 disabled 这个属性终于搞定了问题,查到一篇讲解 readonly 和 disabled 的区别...

  • html 表单里button脱离表单,有关form表单的button事件

    今天要实现一个功能,遇到一个坑,自己折腾了很久,记录一下以提醒自己以及他人。代码如下:站点:时间:从到查询当我在button上面绑定事件的时候,始终不能成功。查错的时候一直以为是自己的js有误,就在那里不停的调...

  • java点击提交数据给到数据库_【Java】点击提交按钮后,将当前textarea中的文本通过后台加工后并获取加工后数据显示在当前页面的div中(不需要数据库),怎么处理?...

    点击提交按钮后,将当前textarea中的文本通过后台加工成json格式的数据后,把加工后的数据显示在当前页面的div中(不需要数据库),怎么处理?目前我用的是表单提交,但是一旦在html页面点击提交按钮后就跳转到新的...

  • 表单提交中Get和Post方式区别

    2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的...

  • .net ajax防页面刷新,ASP.NET之使用Ajax实现页面异步刷新(无需刷新整个页面)

    目前在使用ASP.NET技术做...在这种情况下aspx页面负责显示网页的前端,cs文件负责网页的逻辑处理(及后台),然而,在页面中嵌入javascript也是可以处理相关逻辑的。所以,当遇到一种情况:不需要前端页面,只有后台...

  • 【转载】JAVA知识点集锦(中)

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上...

  • php单选按钮关闭文本框,使用php在html中显示单选按钮文本(Display radio button text in html with php)...

    使用php在html中显示单选按钮文本(Display radio button text in html with php)我从数据库中获取数据并正常显示到html页面。 我想把数组值输出到单选按钮。 当我打印它显示的值但它没有在单选按钮中显示任何内容。...

  • ajax - post(),AJAX中的$.post()函数

    回答when(someAjaxDfd).then(function(data){/这里的参数为什么是data,因为在下面的ajax函数中,我把data当成resolve()的参数传过来了 someAjax完成之后,如果成功,执行ajax1 ajax1(ajax1Dfd);},function(xhr){/这里的...

  • 浅谈开发中提升工作效率的姿势

    回想起来,从毕业到现在在iOS这个行业也努(hua)力(shui)了好几年,每每看到同事加班到深夜,于心不忍,故写这篇博客,总结自己这几年写代码的感悟,希望能帮助到那些加班到深夜的程序猿们.这篇博客主要有两个主题,一是代码...

  • (Z)用java直接连接Access数据源的方法

    对于设置与windows下的jsp服务器,且系统较小时,使用access是一个比较好的选择,但是要使用access数据库一般要通过数据源。这里提供一种不用使用数据源用java直接连接数据源的方法。例子程序如下: 程序代码: import java.sql.*; public class Access{     public static void main(String args[]

  • linux下小企鹅输入法,支持五笔

    http://www.fcitx.org/   下载:fcitx-3.0.0rc-1.i386.rpm安装:要先看本文档前面的准备工作,然后把准备工作做好,再来安装这个包:#rpm -vih fcitx-3.0.0rc-1.i386.rpm --下载源码包,解开找到tables.conf ,复制到用户的根目录的.fcitx目录下,重起X windows. 杀掉原来的input 运行fcitx OK

Global site tag (gtag.js) - Google Analytics