java表盘制作代码.doc_第1页
java表盘制作代码.doc_第2页
java表盘制作代码.doc_第3页
java表盘制作代码.doc_第4页
java表盘制作代码.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.代码实现 :public class Date public Date(int year, int month)int cols = 1;int days = 1;for(int i=1; iyear; i+)if(i%100!=0) & (i%4=0) | (i%400=0)days += 366;elsedays += 365;for(int j=1; jmonth; j+)switch(j)case 1: case 3: case 5: case 7:case 8: case 10: case 12:days += 31;break;case 2:if(year%100!=0) & (

2、year%4=0) | (year%400=0)days += 29;elsedays += 28;break;default:days += 30;break;cols = days % 7;printDate(year, month, cols);public void printDate(int year, int month, int cols)int days = 0;int i = year;int j = month;System.out.println(i+ 年 );System.out.println(t+i+年 +j+ 月 +cols=+cols);switch(j)cas

3、e 1:case 3:case 5:case 7:case 8:case 10:1 / 6.case 12:days = 31;break;case 2:if(i%100!=0) & (i%4=0) | (i%400=0)days = 29;elsedays = 28;break;default:days = 30;break;System.out.println(t 日 + t 一 + t 二 + t 三 + t 四 + t 五 + t 六); for(int m=1; m=cols; m+)System.out.print(t);for(int k=1; k=7)System.out.pr

4、intln();cols = 0;System.out.println();public static void main(String args)Date d1 = new Date(2014, 10); / 输出 2014 年 10 月日历 运行截图 :2 / 6.表盘制作importjavax.swing.*;importjava.awt.*;importjava.io.*;importjava.util.Calendar;importjava.awt.event.*;importjava.awt.image.BufferedImage;publicclassThreadClockext

5、endsJFrame implementsRunnableprivatevolatileBufferedImageboardDrawing ; /volatile是程度较轻的synchronizedprivatevolatileBufferedImageboardDisplaying;publicThreadClock()setTitle(ThreadClock);setSize(300, 300);setLocation(450,200);3 / 6.setDefaultCloseOperation(DISPOSE_ON_CLOSE);setVisible(true);boardDrawin

6、g=new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);boardDisplaying= new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);publicvoidpaint(Graphics g) g.drawImage(boardDisplaying, 0, 0,null);Overridepublicvoidrun() / 本来我这里的循环条件为true,不过测试运行了几次之后发现

7、这个线程并没有被关闭/ 内存使用变成了 3GB+,任务管理器中满是 javaw.exe/ 后来用 this.isShowing()来判断一下,终于可以顺利结束进程了while( this.isShowing()Graphics g =boardDrawing.getGraphics();g.setColor(Color.WHITE);g.clearRect(0, 0,boardDrawing.getWidth(),boardDrawing.getHeight();/ 清除图形g.fillRect(0, 0,boardDrawing.getWidth(),boardDrawing.getHeig

8、ht();/ 填充背景色为白色/ 画图/ 画出 clock 的表盘及数字g.setColor(Color.BLUE);g.drawOval(100, 100, 100, 100);g.drawString(12, 145, 115);g.drawString(6, 145, 195);g.drawString(9, 105, 155);g.drawString(3, 190, 155);/get Instance Time得到当前时间Calendar c=Calendar.getInstance();intweek=c.get(Calendar.DAY_OF_WEEK);intmonth=c.

9、get(Calendar.MONTH);intday=c.get(Calendar.DATE);inthour=c.get(Calendar.HOUR_OF_DAY);intminute=c.get(Calendar.MINUTE);intsecond=c.get(Calendar.SECOND);4 / 6.intyear=c.get(Calendar.YEAR);/ 画出时针分针秒针DrawHands(g, second/60.0, 40);DrawHands(g, minute/60.0, 32);DrawHands(g, (hour)/12.0, 25);String weekName

10、= 星期日 , 星期一 , 星期二 , 星期三 , 星期四 , 星期五 , 星期六 ;String monthName= 一月 , 二月 , 三月 , 四月 , 五月 , 六月 , 七月,八月,九月, 十月,十一月,十二月 ;/ 画出显示时间的字符串String timeString=String.format( %s %s - -:-:- %s,weekNameweek,monthNamemonth,day,hour,minute,second,year);g.drawString(timeString, 75, 215);g.drawString(neolone, 240, 280);/

11、切换前景与背景工作区BufferedImage tmp =boardDisplaying;boardDisplaying=boardDrawing;boardDrawing= tmp;this.repaint();tryThread.sleep (500);catch(Exception e) System.out .println(e);/ 用 g画出某根针 (时分秒只是长度不同) ,percent 表示从十二点到某指针现在的位置占整个圆周的百分比, length 表示长度privatevoidDrawHands(Graphics g,Double percent,intlength)doubledegree=360*percent;intx=(int)(150+Math.cos (2*Math.PI *(90-degree)/360)*length);inty=(int)(150-Math.sin (2*Math.PI *(90-degree)/360

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论