介绍
小编给大家分享一下java怎么实现时钟效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体内容如下
实现效果如图:
<强> java代码:强>
<强>文件一:强> ClockPanel。java
import static java.util.Calendar.HOUR; import static  java.util.Calendar.MILLISECOND; import static  java.util.Calendar.MINUTE; import static  java.util.Calendar.SECOND; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; java . awt . graphics2d import ; import java.util.Calendar; import javax.swing.ImageIcon; import javax.swing.JPanel;/* * ,*时钟面板 *大敌; ,* @author 听说你很会玩 ,*/@SuppressWarnings (“serial") public class  ClockPanel extends JPanel  { ,//3个指针的粗细 ,private static  final BasicStroke  HOURS_POINT_WIDTH =, new BasicStroke (4); ,private static  final BasicStroke  MINUETES_POINT_WIDTH =, new BasicStroke (3); ,private static  final BasicStroke  SEC_POINT_WIDTH =, new BasicStroke (2); ,ImageIcon 背景;//,背景图片对象 ,private int  centerX;//,中心坐标 ,private int  centerY;//,中心坐标 ,private final  static int  secLen =, 60,,//,指针长度 ,private final  static int  minuesLen =, 55岁,,//,指针长度 ,private final  static int  hoursLen =, 36,,//,指针长度 ,/* * ,*构造方法 ,*/,public ClockPanel (), { ,setToolTipText(“小键盘+,-调整透明度,Crtl + Shift + X退出“);//,提示信息 ,setOpaque(假); ,=,,background  new ImageIcon (getClass () .getResource (“clock.jpg"));//,加载图片 ,int iconWidth =, background.getIconWidth();//,获取图片大?,,centerX  iconWidth /, 2;//,获取图片中间坐标 ,int iconHeight =, background.getIconHeight ();=,,centerY  iconHeight /, 2;//,获取图片中间坐标 ,setPreferredSize (new 维度(iconWidth, iconHeight)); ,} , ,@Override ,public void 油漆(Graphics g),{//,重写父类方法 ,Graphics2D g2 =, (Graphics2D), g; ,g2.drawImage (background.getImage(),, 0, 0,,这一点);//,绘制背景图片 ,Calendar Calendar =, Calendar.getInstance();//,获取日历对象 ,int millisecond =, calendar.get(毫秒);//,获取毫秒值 ,int sec =, calendar.get(第二);//,获取秒值 ,int minutes =, calendar.get(分钟);//,获取分值 ,int hours =, calendar.get(小时);//,获取时的值 ,double secAngle =,(60,安康,sec), *, 6,安康;(millisecond /, 150);,//,秒针角度 ,int minutesAngle =,(60,安康;分钟),*,6;//,分针角度 ,int hoursAngle =,(12,安康;小时),*,360,/,12,安康;(时间/minutes 2);//,时针角度 ,//计算秒针,分针,时针指向的坐标 ,int secX =, (int), (secLen *, sin (Math.toRadians (secAngle)));//,秒针指向点的X坐标 ,int secY =, (int), (secLen *, Math.cos (Math.toRadians (secAngle))),,//,秒针指向点的Y坐标 ,int minutesX =, (int), (minuesLen *,数学 ,.sin (Math.toRadians (minutesAngle))),,//,分针指向点的X坐标 ,int minutesY =, (int), (minuesLen *,数学 ,.cos (Math.toRadians (minutesAngle))),,//,分针指向点的Y坐标 ,int hoursX =, (int), (hoursLen *, sin (Math.toRadians (hoursAngle))),,//,时针指向点的X坐标 ,int hoursY =, (int), (hoursLen *, Math.cos (Math.toRadians (hoursAngle))),,//,时针指向点的Y坐标 ,//分别绘制时针,分针,秒针 ,g2.setStroke (HOURS_POINT_WIDTH);//,设置时针的宽度 ,g2.setColor (Color.BLACK);//,设置时针的颜色 ,g2.drawLine (centerX, centerY,, centerX 作用;hoursX,, centerY 作用;hoursY);//,绘制时针 ,g2.setStroke (MINUETES_POINT_WIDTH);//,设置分针的宽度 ,if (minutesAngle !=, hoursAngle),//,分针,时针重叠变色 ,g2.setColor (new 颜色(0 x2f2f2f));//,设置未重叠时的颜色 ,else { ,g2.setColor (Color.GREEN);//,设置重叠时的颜色 ,} ,g2.drawLine (centerX, centerY,, centerX 作用;minutesX,, centerY 作用;minutesY);//,绘制分针 ,g2.setStroke (SEC_POINT_WIDTH);//,设置秒针的宽度 ,if (secAngle !=, hoursAngle ,,, secAngle !=, minutesAngle)//,分针,时针,秒针重叠变色 ,g2.setColor (Color.ORANGE);//,设置未重叠时的颜色 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nulljava怎么实现时钟效果