最代码广告位
package com.a.a;

import java.awt.*;
import javax.swing.*;
import java.util.*;

public class StillClock extends JPanel
{
	private int hour;
	private int minute;
	private int second;

	public StillClock()
	{
		setCurrentTime();
	}

	/** Construct a clock with specified hour, minute, and second */
	public StillClock(int hour, int minute, int second)
	{
		this.hour = hour;
		this.minute = minute;
		this.second = second;
	}

	/** Return hour */
	public int getHour()
	{
		return hour;
	}

	/** Set a new hour */
	public void setHour(int hour)
	{
		this.hour = hour;
		repaint();
	}

	/** Return minute */
	public int getMinute()
	{
		return minute;
	}

	/** Set a new minute */
	public void setMinute(int minute)
	{
		this.minute = minute;
		repaint();
	}

	/** Return second */
	public int getSecond()
	{
		return second;
	}

	/** Set a new second */
	public void setSecond(int second)
	{
		this.second = second;
		repaint();
	}

	/** Draw the clock */
	protected void paintComponent(Graphics g)
	{
		super.paintComponent(g);

		// Initialize clock parameters
		int clockRadius = (int) (Math.min(getWidth(), getHeight()) * 0.8 * 0.5);
		int xCenter = getWidth() / 2;
		int yCenter = getHeight() / 2;

		// Draw circle
		g.setColor(Color.black);
		g.drawOval(xCenter - clockRadius, yCenter - clockRadius,
				2 * clockRadius, 2 * clockRadius);
		g.drawString("12", xCenter - 5, yCenter - clockRadius + 12);
		g.drawString("9", xCenter - clockRadius + 3, yCenter + 5);
		g.drawString("3", xCenter + clockRadius - 10, yCenter + 3);
		g.drawString("6", xCenter - 3, yCenter + clockRadius - 3);

		// Draw second hand
		int sLength = (int) (clockRadius * 0.8);
		int xSecond = (int) (xCenter + sLength
				* Math.sin(second * (2 * Math.PI / 60)));
		int ySecond = (int) (yCenter - sLength
				* Math.cos(second * (2 * Math.PI / 60)));
		g.setColor(Color.red);
		g.drawLine(xCenter, yCenter, xSecond, ySecond);

		// Draw minute hand
		int mLength = (int) (clockRadius * 0.65);
		int xMinute = (int) (xCenter + mLength
				* Math.sin(minute * (2 * Math.PI / 60)));
		int yMinute = (int) (yCenter - mLength
				* Math.cos(minute * (2 * Math.PI / 60)));
		g.setColor(Color.blue);
		g.drawLine(xCenter, yCenter, xMinute, yMinute);

		// Draw hour hand
		int hLength = (int) (clockRadius * 0.5);
		int xHour = (int) (xCenter + hLength
				* Math.sin((hour % 12 + minute / 60.0) * (2 * Math.PI / 12)));
		int yHour = (int) (yCenter - hLength
				* Math.cos((hour % 12 + minute / 60.0) * (2 * Math.PI / 12)));
		g.setColor(Color.BLACK);
		g.drawLine(xCenter, yCenter, xHour, yHour);
	}

	public void setCurrentTime()
	{
		// Construct a calendar for the current date and time
		Calendar calendar = new GregorianCalendar();

		// Set current hour, minute and second
		this.hour = calendar.get(Calendar.HOUR_OF_DAY);
		this.minute = calendar.get(Calendar.MINUTE);
		this.second = calendar.get(Calendar.SECOND);
	}

	public Dimension getPreferredSize()
	{
		return new Dimension(200, 200);
	}
}
最近下载更多
段朝洪 LV142020年11月21日
月亮月亮月亮星星星星
liangge2115 LV182020年10月17日
太阳星星星星
刘晨娜 LV12020年7月24日
星星
15966848095 LV182020年1月12日
太阳星星星星
wenxiaozhong LV12019年12月18日
星星
如风太过分人 LV12019年12月17日
星星
yongzheng132 LV172019年6月21日
太阳星星
李逸荨 LV102019年6月17日
月亮月亮星星星星
Dav1d7 LV22019年3月11日
星星星星
HBXXXXX LV92019年1月3日
月亮月亮星星
最近浏览更多
colourful LV71月1日
月亮星星星星星星
yellowfor LV12020年12月23日
星星
pxlpxlpxl LV32020年12月20日
星星星星星星
Goodnight_chenchen2020年12月9日
暂无贡献等级
段朝洪 LV142020年11月21日
月亮月亮月亮星星星星
ccqq123456 LV22020年11月1日
星星星星
a7785635772020年10月27日
暂无贡献等级
liangge2115 LV182020年10月17日
太阳星星星星
Find-ing LV12020年10月2日
星星
675104182 LV132020年9月21日
月亮月亮月亮星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友