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

📄 clock.java

📁 显示钟表画面
💻 JAVA
字号:
/**
  实验十 时钟
  在掌握Java图形绘制的基础上,熟悉填充颜色
  @author YangXiaoyan CS0501
*/

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

public class Clock
{
	public static void main(String[] args)
	{
		ClockFrame frame = new ClockFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

class ClockFrame extends JFrame
{
	private static final int WIDTH = 400;
	private static final int HEIGHT = 400;
	public ClockFrame()
	{
	Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int width = screenSize.width;
		int height = screenSize.height;
		int x = (width - WIDTH)/2;
		int y = (height - HEIGHT)/2;
		setLocation(x, y);//设置坐标起点
		setTitle("Display Clock");
		setSize(WIDTH, HEIGHT);//设置框架的大小
		setResizable(true);

		ClockPanel panel = new ClockPanel();
		add(panel);//将面板添加到内容窗格中

	}
}
class ClockPanel extends JPanel
{
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D)g;

	    //绘制表盘
		Ellipse2D e=new Ellipse2D.Double(100,50,200,200);
		g2.setPaint(Color.black);
		g2.draw(e);
		//绘制数字
		g2.drawString("12",195,47);
		g2.drawString("3",305,155);
		g2.drawString("6",197,265);
		g2.drawString("9",90,155);

		g2.setPaint(Color.red);//设置颜色为红色
		g2.drawString("Hour:0   Minute:0   Second:0",120,300);
		double a[]=new double[60];
		for(int i=0;i<60;i++)
		{
			//绘制表盘四周指针
			a[i]=i*3.14/30; //一分钟为6°=2π/60
			double X1=90*Math.sin(a[i]);//一小格的起点坐标
			double Y1=90*Math.cos(a[i]);

			double X2=100*Math.sin(a[i]);//一小格的终点坐标
			double Y2=100*Math.cos(a[i]);

			double x1=200+X1;
			double y1=150-Y1;

			double x2=200+X2;
			double y2=150-Y2;

			Line2D line1=new Line2D.Double(x1,y1,x2,y2);
			g2.draw(line1);

			if(i%5==0)
			{   //绘制大针
				double X3=85*Math.sin(a[i]);
				double Y3=85*Math.cos(a[i]);
				double x3=200+X3;
				double y3=150-Y3;
				double x4=200+X2;
				double y4=150-Y2;

				Line2D line2=new Line2D.Double(x3,y3,x4,y4);
				g2.draw(line2);
			}
		}
		 //绘制时,分,秒针
		 Line2D lhour=new Line2D.Double(200,95,200,150);
		 g2.setPaint(Color.green);
		 g2.draw(lhour);
		 Line2D lmin=new Line2D.Double(200,80,200,95);
		 g2.setPaint(Color.blue);
		 g2.draw(lmin);
		 Line2D lsec=new Line2D.Double(200,70,200,80);
		 g2.setPaint(Color.red);
		 g2.draw(lsec);

	}
}

⌨️ 快捷键说明

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