📄 clockpanel.java
字号:
import java.awt.*;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
import java.util.Date;
import javax.swing.JPanel;
class ClockPanel extends JPanel
{
ClockPanel()
{
xcenter = 210;
ycenter = 170;
s = 0;
m = 10;
h = 10;
currentDate = new Date();
lastdate = currentDate.toString();
clockFaceFont = new Font("Serif", 2, 26);
mC = Color.magenta;
hC = Color.orange;
sC = Color.red;
nC = Color.black;
gp1 = new GradientPaint(0.0F, 0.0F, Color.blue, 450F, 400F, Color.CYAN, true);
gp2 = new GradientPaint(0.0F, 0.0F, Color.CYAN, 450F, 400F, Color.blue, true);
r2d = new java.awt.geom.Rectangle2D.Double(0.0D, 0.0D, 450D, 400D);
a2d = new java.awt.geom.Arc2D.Double(xcenter - 150, ycenter - 155, 300D, 300D, 0.0D, 360D, 0);
bs = new BasicStroke(10F);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D graphics2d = (Graphics2D)g;
graphics2d.setPaint(gp1);
graphics2d.fill(r2d);
graphics2d.setStroke(bs);
graphics2d.setFont(clockFaceFont);
currentDate = new Date();
today = currentDate.toString();
graphics2d.setPaint(gp2);
graphics2d.fill(a2d);
graphics2d.setColor(nC);
graphics2d.drawString("9", xcenter - 120, ycenter + 10);
graphics2d.drawString("3", xcenter + 120, ycenter + 10);
graphics2d.drawString("12", xcenter - 15, ycenter - 120);
graphics2d.drawString("6", xcenter - 10, ycenter + 125);
graphics2d.drawString(today, 0, 2 * ycenter - 5);
s = currentDate.getSeconds();
m = currentDate.getMinutes();
h = currentDate.getHours();
xs = (int)(Math.cos(((double)s * 3.1415926535897931D) / 30D - 1.5707963267948966D) * 100D + (double)xcenter);
ys = (int)(Math.sin(((double)s * 3.1415926535897931D) / 30D - 1.5707963267948966D) * 100D + (double)ycenter);
xm = (int)(Math.cos(((double)m * 3.1415926535897931D) / 30D - 1.5707963267948966D) * 80D + (double)xcenter);
ym = (int)(Math.sin(((double)m * 3.1415926535897931D) / 30D - 1.5707963267948966D) * 80D + (double)ycenter);
xh = (int)(Math.cos(((double)(h * 30 + m / 2) * 3.1415926535897931D) / 180D - 1.5707963267948966D) * 50D + (double)xcenter);
yh = (int)(Math.sin(((double)(h * 30 + m / 2) * 3.1415926535897931D) / 180D - 1.5707963267948966D) * 50D + (double)ycenter);
graphics2d.setColor(sC);
graphics2d.drawLine(xcenter, ycenter, xs, ys);
graphics2d.setColor(mC);
graphics2d.drawLine(xcenter, ycenter, xm, ym);
graphics2d.setColor(hC);
graphics2d.drawLine(xcenter, ycenter, xh, yh);
currentDate = null;
try
{
Thread.sleep(1000L);
}
catch(InterruptedException interruptedexception) { }
repaint();
}
String lastdate;
Font clockFaceFont;
Date currentDate;
Color sC;
Color mC;
Color hC;
Color nC;
int xcenter;
int ycenter;
int xh;
int yh;
int xm;
int ym;
int xs;
int ys;
int s;
int m;
int h;
String today;
GradientPaint gp1;
GradientPaint gp2;
java.awt.geom.Rectangle2D.Double r2d;
java.awt.geom.Arc2D.Double a2d;
BasicStroke bs;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -