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 - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈开发中的MVVM模式及与MVP和MV
- 下一篇: 前端测试利器--Browser-Sync