⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemclock.java

📁 操作系统课程设计CPU管理源码 用JAVA实现
💻 JAVA
字号:
package cpu.clock;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class SystemClock extends JPanel{
	private static final long serialVersionUID = 7367687021576665231L;
	private double minutes=0,hours=0,seconds=0;
	private int radius=40;
	private double second_hand_length=0.8*radius;
	private double minute_hand_length=0.7*radius;
	private double hour_hand_length=0.5*radius;
	public SystemClock(){
		setPreferredSize(new Dimension(2*radius+1,2*radius+1));
	}
	public void paintComponent(Graphics g){
		//setBackground(new Color(0x6699ff));
		super.paintComponent(g);
		//draw the circle boundary
		Graphics2D g2=(Graphics2D)g;
		Ellipse2D circle=new Ellipse2D.Double(0,0,2*radius,2*radius);
		g2.setColor(new Color(0x669922));
		g2.draw(circle);
        //draw number
		g2.drawString("9", 2, radius+5);
		g2.drawString("10", 5, radius-12);
		g2.drawString("11", 20, radius-27);
		g2.drawString("12",radius-5,12);
		g2.drawString("1",radius+15,radius-25);
		g2.drawString("2",radius+25,radius-15);
		g2.drawString("3",radius*2-9,radius+5);
		g2.drawString("4", 2*radius-15, radius+25);
		g2.drawString("5", 2*radius-30, radius+37);
		g2.drawString("6",radius-5,2*radius);
		g2.drawString("7", radius-24, 2*radius-6);
		g2.drawString("8", radius-35, 2*radius-20);
		//draw the hour hand
		g2.setColor(Color.black);
		double hourAngle=Math.toRadians(90-(30*hours+minutes/2));
		drawHand(g2,hourAngle,hour_hand_length);
		//draw the minutes hand
		g2.setColor(new Color(0x6699ff));
		double minuteAngle=Math.toRadians(90-360*minutes/60);
		drawHand(g2,minuteAngle,minute_hand_length);
		//draw the secomnds hand
		double secondAngle=Math.toRadians(90-360*seconds/60);
		g2.setColor(Color.red);
		drawHand(g2,secondAngle,second_hand_length);
	}
	public void drawHand(Graphics2D g2,double angle,double handLength){
		Point2D end=new Point2D.Double(
				radius+handLength*Math.cos(angle),
				radius-handLength*Math.sin(angle));
		Point2D center=new Point2D.Double(radius,radius);
		g2.draw(new Line2D.Double(center,end));
	}
	public void setTime(int h,int m,int s){
		hours=h;
		minutes=m;
		seconds=s;
		repaint();
	}
	public static void main(String[] args){
		JFrame frame=new JFrame();
		frame.setBounds(new Rectangle(100,100,300,200));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(new SystemClock());
		frame.setVisible(true);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -