编写程序显示一个时钟
2011-11-11 00:00
441 查看
编写程序显示一个时钟。示例输出如图所示。
代码:
代码:
package com.DisplayClock; import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class DisplayClock{ Thread hourThread = null; //时针线程 Thread minuteThread = null; //分针线程 Thread secondThread = null; //秒针线程 int currentHour = 0; //获取当前时间中代表小时的数字值 int currentMinute = 0; //获取当前时间中代表分钟的数字值 int currentSecond = 0; //获取当前时间中代表秒数字值 int isRestart = 0; //判断是否重新开始 public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run() { DrawFrame frame = new DrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class DrawFrame extends JFrame{ public DrawFrame() { setTitle("DisplayClock");//设置显示窗的标题 setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);//设置窗口的大小 DrawComponent component = new DrawComponent(); //创建要建立的图形的对象 add(component); //将该图形加入到面板上 } public static final int DEFAULT_WIDTH = 500; //设置窗口的宽度 public static final int DEFAULT_HEIGHT = 500; //设置窗口的高度 } //建立时钟图形 class DrawComponent extends JComponent { public void paintComponent(Graphics g) { g.setColor(Color.blue); Graphics2D g2 = (Graphics2D) g; Ellipse2D circle = new Ellipse2D.Double(); circle.setFrameFromCenter(200,200,300,300); g2.draw(circle); //用来写表盘上的刻度 g.setColor(Color.green); double jiaodu = Math.PI / 2; double keX[] = new double[60];//存放表盘刻度的起始X坐标 double keY[] = new double[60];//存放表盘刻度的起始Y坐标 double duX[] = new double[60];//存放表盘刻度的终止X坐标 double duY[] = new double[60];//存放表盘刻度的终止Y坐标 for(int i = 0;i < 60;i++){ if(i == 0||i%5 == 0) { keX[i] = 200 + 80 * Math.cos(jiaodu); keY[i] = 200 - 80 * Math.sin(jiaodu); } else { keX[i] = 200 + 90 * Math.cos(jiaodu); keY[i] = 200 - 90 * Math.sin(jiaodu); } duX[i] = 200 + 100 * Math.cos(jiaodu); duY[i] = 200 - 100 * Math.sin(jiaodu); jiaodu = jiaodu - Math.PI / 30; } for(int j =0;j < 60;j++){ g2.draw(new Line2D.Double(keX[j],keY[j],duX[j],duY[j])); } //画12点的指针秒针 g.setColor(Color.black); g2.draw(new Line2D.Double(200,200,200,130)); //画出分针 g.setColor(Color.BLUE); g2.draw(new Line2D.Double(200,200,200,140)); //画出时针 g.setColor(Color.PINK); g2.draw(new Line2D.Double(200,200,200,150)); } }
相关文章推荐
- 8.8编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字......
- 编写一个显示“欢迎学习Java”的Java Applet程序
- 一个显示地图数据,并实现简单浏览查询程序源码(SDK编写)
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 题目: 编写一个程序,实现设置上月、本月电表读数,显示上月ji本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- Java实训——编写一个窗体程序显示日历。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 用C#写一个简单的时钟日期显示程序
- 编写一个生产者,消费者多线程程序,一个线程随机产生数据,另一个线程显示所产生的数据.
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- C primer plus 第七章 练习9: 编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数, 假设每度电的价格为1.2元,计算并显示本月电费
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
- 编写程序,提示用户输入一个整数,然后显示一个金子塔形状的图案
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。
- 编写一个学生和教师数据输入和显示程序,学生数据有编号,姓名,班号,和成绩,教师数据有编号,姓名,职称和部门。要求将编号,姓名输入显示设计成一个类person,并作为学生数据类t和教师数据操作类的基类
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 笔试题:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,实现显示上月、本月电表读数,计算并显示本月用电数。