java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...
编写程序显示一个时钟。示例输出如图所示。
代码:
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));
}
}
java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐
- java电子报刊网站_采集电子报纸 - 杨尚川的个人页面 - OSCHINA - 中文开源技术交流社区...
1.接口 /** *报纸采集器 * @author 杨尚川 */ public interface PaperCollector { /** * 下载当日报纸,一个文件对应一个版面 * @return ...
- php 小程序 运动步数_小程序同步微信步数 - xiangqian1的个人空间 - OSCHINA - 中文开源技术交流社区...
小程序获取微信运动步数,咱们看文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunDat ...
- java简述标识符和保留字区别_Java 基础语法 - 流年似水莫停留的个人页面 - OSCHINA - 中文开源技术交流社区...
Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一 ...
- q7固件 数码视讯_数码视讯Q7的刷机 - osc_8quu62cg的个人空间 - OSCHINA - 中文开源技术交流社区...
Q7的硬件配置 CPU: S905L RAM: MIRA P3P4GF4DMF/P3P4GF4BLF DDR3 512MB * 2 = 1GB ROM: 镁光29F64G08CBABB(NAND) * ...
- mysql聚类函数排序_聚类算法大盘点 - 如鱼饮水,冷暖自知 - OSCHINA - 中文开源技术交流社区...
最近在关注聚类分析,了解了之后才发现,原来聚类分析里已经有这么丰富的成果,因此希望对其做个较全面的总结. 本文涉及到的聚类算法较多,请允许我慢慢更新. 1 层次聚类 (Agglomerative Cl ...
- mysql外码内码定义_中文编码杂谈(转) - CodeAxe的个人页面 - OSCHINA - 中文开源技术交流社区...
编码问题的例子 在windows自带的notepad(记事本)程序中输入"联通"两个字,保存后再次打开,会发现"联通"不见了,代之以"��ͨ" ...
- mysql消除冗余关键字_优化mysql语句 - 可爱的wzz的个人空间 - OSCHINA - 中文开源技术交流社区...
1.查询SQL尽量不要使用select *,而是select具体字段. 反例子: select * from employee; 正例子: select id,name from employee; ...
- java自定义标签遍历_自定义标签 - CarlDing的个人页面 - OSCHINA - 中文开源技术交流社区...
EL的不足,由JSTL来加强 -> 自定义标签来实现. 1:自定义标签 1:自定义标签也是类. 2:让用户在JSP页面使用,不引用Java代码的情况下,调用Java代码. 2:标签开的类的继承 ...
- java选择排序不稳定_选择排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...
选择排序就这么简单 从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出. 选择排序介绍和稳 ...
最新文章
- p10平板电脑android,8英寸安卓系统 Newpad P10平板电脑评测
- qt 进度条_Qt开源作品12-硬盘容量控件
- 多C++标准版本指定
- 命令逐行显示_Linux命令和Shell脚本学习随笔3
- 机器学习之神经网络学习及其模型
- LoadLibrary 失败 GetLastError 126
- 如何让你的Linux云服务器更加的安全?
- 偏置方差分解Bias-variance Decomposition
- vue自学入门-2(vue创建项目)
- 架构篇:什么是微服务架构 Spring Cloud?
- 科学计算器 c语言源代码,科学计算器C语言代码
- **关于小程序测试版本自己的头像与数据不显示问题**
- 视觉工程师:工业相机50问
- Vue中使用swiper构建简易轮播图
- OpenMV学习(0):环境搭配
- hadoop与spark的异同
- 【调剂】2022年太原科技大学力学专业接收工学调剂生
- 高德地图离线地图开发 教程
- 六点要求,社招进阿里,一个萝卜一个坑,想去阿里看看能不能对号入座再说
- 计算机网络(自顶向下方法)中的PoP
热门文章
- ubuntu上Nginx的配置
- notes belonging to given user
- html native code is rendered from xml configuration
- where used list repository table WBCROSSGT
- 一个Java快速排序实现的调试
- cap理论具体含义_分布式事务的CAP理论
- 哨兵系列卫星_智利Panguipulli湖的卫星遥感水特征时空变化图
- 四数之和Python解法
- 查看Python当前版本
- qt单步调试linux程序,用Qt 调用GDB调试 Arm程序 详细步骤----可单步执行每一行