1、验证回文串java钟package com.test2;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Ti
2、mer;public class LittleClock extends JFrame implements ActionListener /* * */ private static final long serialVersionUID = -700696859519289014L; MyPanel mp; public static void main(String args) new LittleClock(); public LittleClock() mp = new MyPanel(); this.add(mp); this.setSize(300, 300); this.set
3、Title(电子钟); this.setLocation(400, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this.setVisible(true); public void actionPerformed(ActionEvent arg0) / define我的面板class MyPanel extends JPanel implements ActionListener private static final long serialVersionUID =
4、-1797524184705865025L; int r = 80;/ 表盘的半径 int p1x;/ 表盘上的60个刻度 int p1y; int p2x; int p2y; / 112数字的坐标 int n1x; int n1y; / 分针,秒针,时针的坐标 int secx; int secy; int minx; int miny; int hourx; int houry; final double PI = 3.14; Timer t;/ 定时器,定时触发事件 int sign;/ 用于画指针的指示标志 int hours;/ 当前小时 int mins;/ 当前分钟 int se
5、cs;/ 当前秒数 public MyPanel() t = new Timer(1000, this);/ 1000ms触发一次事件 t.start(); / 读取当前时间 hours = Calendar.getInstance().get(Calendar.HOUR); mins = Calendar.getInstance().get(Calendar.MINUTE); secs = Calendar.getInstance().get(Calendar.SECOND); p1x = new int60; p1y = new int60; p2x = new int60; p2y =
6、new int60; n1x = new int12; n1y = new int12; secx = new int60; secy = new int60; minx = new int60; miny = new int60; hourx = new int60; houry = new int60; / 以12点为起点,则初始角度为90度 int j = 90; for (int i = 0; i p1x.length; i+) double du = j / 180.0 * PI; / 生成表盘刻度 p1xi = (int) (r * Math.cos(du); p1yi = (in
7、t) (-r * Math.sin(du); / 生成秒针坐标 secxi = (int) (r - 20) * Math.cos(du); secyi = (int) (-(r - 20) * Math.sin(du); / 生成分针坐标 minxi = (int) (r - 35) * Math.cos(du); minyi = (int) (-(r - 35) * Math.sin(du); / 生成时针坐标 hourxi = (int) (r - 45) * Math.cos(du); houryi = (int) (-(r - 45) * Math.sin(du); if (i %
8、5 = 0)/ 整时的特殊坐标 / 生成表盘刻度 p2xi = (int) (r - 10) * Math.cos(du); p2yi = (int) (-(r - 10) * Math.sin(du); / 生成数字的坐标 if (i 15) n1xi / 5 = (int) (r - 25) * Math.cos(du); n1yi / 5 = (int) (-(r - 25) * Math.sin(du); else if (i 30) n1xi / 5 = (int) (r - 20) * Math.cos(du); n1yi / 5 = (int) (-(r - 15) * Math
9、.sin(du); else if (i 45) n1xi / 5 = (int) (r - 15) * Math.cos(du); n1yi / 5 = (int) (-(r - 15) * Math.sin(du); else if (i 60) n1xi / 5 = (int) (r - 15) * Math.cos(du); n1yi / 5 = (int) (-(r - 20) * Math.sin(du); else p2xi = (int) (r - 5) * Math.cos(du); p2yi = (int) (-(r - 5) * Math.sin(du); j = j -
10、 6; public void paint(Graphics g) Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.DARK_GRAY); g2d.fillRect(10, 10, this.getWidth() - 20, this.getHeight() - 20); g2d.translate(this.getWidth() / 2, this.getHeight() / 2);/ 重定义原点 g2d.setStroke(new BasicStroke(3); g2d.setColor(Color.yellow); g2d.draw
11、Oval(-r, -r, 2 * r, 2 * r);/ 画表盘的圆 g2d.fillOval(-5, -5, 10, 10); g2d.drawArc(-70, -90, 50, 50, 220, -190); g2d.drawArc(20, -90, 50, 50, -40, 190); g2d.drawLine(-50, 90, p1x35, p1y35); g2d.drawLine(50, 90, p1x25, p1y25); int count = 60; for (int i = 0; i p1x.length; i+) if (count % 5 = 0) g2d.setColo
12、r(Color.red); g2d.setStroke(new BasicStroke(2); g.drawString(String.valueOf(count / 5), n1x(count / 5) % 12, n1y(count / 5) % 12);/ 画数字 g2d.drawLine(p2xi, p2yi, p1xi, p1yi);/ 画刻度 g2d.setStroke(new BasicStroke(1); g2d.setColor(Color.green); count-; / 画时针 g2d.setStroke(new BasicStroke(4); g2d.drawLine
13、(0, 0, hourxhours % 12 * 5 + (int) (mins / 12), houryhours % 12 * 5 + (int) (mins / 12); / 画分针 g2d.setStroke(new BasicStroke(3); g2d.setColor(Color.orange); g2d.drawLine(0, 0, minxmins % 60, minymins % 60); / 画秒针 g2d.setStroke(new BasicStroke(2); g2d.setColor(Color.white); g2d.drawLine(0, 0, secxsecs % 60, secysecs % 60); public void actionPerformed(ActionEvent e) / 由定时器触发的事件 secs+; if (secs = 60) secs %= 60; mins+; if (mins = 60) mins %= 60; hours+; if (hours = 12) hours %= 12; this.repaint(); 图书馆管理系统package com.test2;i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1