10. 9. 1. 丑陋的表 Create a thread to update Swing
来源:互联网 发布:索福瑞收视数据 编辑:程序博客网 时间:2024/05/16 09:35
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import javax.swing.JFrame;import javax.swing.JPanel;public class Clock extends JPanel implements Runnable{Thread thread = null;//SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。SimpleDateFormat formatter = new SimpleDateFormat("s",Locale.getDefault());Date currentDate;//这个时间是 java.util.Dateint xcenter = 100, ycenter = 100, lastxs = 0, lastys = 0, lastxm = 0, lastym = 0, lastxh = 0,lastyh = 0;private void drawStructure(Graphics g){//画这个表圆,表针g.setFont(new Font("TimesRoman", Font.PLAIN, 14));g.setColor(Color.blue);g.drawOval(xcenter-50, ycenter-50, 100, 100);g.setColor(Color.DARK_GRAY);g.drawString("9", xcenter - 45, ycenter + 3); g.drawString("3", xcenter + 40, ycenter + 3); g.drawString("12", xcenter - 5, ycenter - 37);//这几个位置好难弄 g.drawString("6", xcenter - 3, ycenter + 45);}public void paint(Graphics g){int xhour, yhour, xminute, yminute, xsecond, ysecond, second, minute, hour; drawStructure(g); currentDate = new Date(); formatter.applyPattern("s"); second = Integer.parseInt(formatter.format(currentDate)); formatter.applyPattern("m"); minute = Integer.parseInt(formatter.format(currentDate)); formatter.applyPattern("h"); hour = Integer.parseInt(formatter.format(currentDate)); xsecond = (int) (Math.cos(second * 3.14f / 30 - 3.14f / 2) * 45 + xcenter); ysecond = (int) (Math.sin(second * 3.14f / 30 - 3.14f / 2) * 45 + ycenter); xminute = (int) (Math.cos(minute * 3.14f / 30 - 3.14f / 2) * 40 + xcenter); yminute = (int) (Math.sin(minute * 3.14f / 30 - 3.14f / 2) * 40 + ycenter); xhour = (int) (Math.cos((hour * 30 + minute / 2) * 3.14f / 180 - 3.14f / 2) * 30 + xcenter); yhour = (int) (Math.sin((hour * 30 + minute / 2) * 3.14f / 180 - 3.14f / 2) * 30 + ycenter); // Erase if necessary, and redraw g.setColor(Color.lightGray); if (xsecond != lastxs || ysecond != lastys) { g.drawLine(xcenter, ycenter, lastxs, lastys); } if (xminute != lastxm || yminute != lastym) { g.drawLine(xcenter, ycenter - 1, lastxm, lastym); g.drawLine(xcenter - 1, ycenter, lastxm, lastym); } if (xhour != lastxh || yhour != lastyh) { g.drawLine(xcenter, ycenter - 1, lastxh, lastyh); g.drawLine(xcenter - 1, ycenter, lastxh, lastyh); } g.setColor(Color.darkGray); g.drawLine(xcenter, ycenter, xsecond, ysecond); g.setColor(Color.red); g.drawLine(xcenter, ycenter - 1, xminute, yminute); g.drawLine(xcenter - 1, ycenter, xminute, yminute); g.drawLine(xcenter, ycenter - 1, xhour, yhour); g.drawLine(xcenter - 1, ycenter, xhour, yhour); lastxs = xsecond; lastys = ysecond; lastxm = xminute; lastym = yminute; lastxh = xhour; lastyh = yhour;}public void start(){if(thread == null){thread = new Thread(this);thread.start();}}public void stop(){thread = null;}public void run() {while(thread != null){try{Thread.sleep(100);}catch(InterruptedException e){}repaint();}thread = null;}public void update(Graphics g){paint(g);}public static void main(String[] args) {JFrame window = new JFrame("我是一只丑陋的表"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setBounds(30, 30, 300, 300); Clock clock = new Clock(); window.getContentPane().add(clock); window.setVisible(true); clock.start();}}
- 10. 9. 1. 丑陋的表 Create a thread to update Swing
- How to create a simple Thread
- How To Create a kernel thread
- how to create a thread in win32 platform
- Two ways to create a new thread of execution
- Create a thread demo
- Create A Thread
- unable to create native thread
- Create a thread under linux
- When Not to Create a Thread-come from WINDOWS VIA C C++
- This is very likely to create a memory leak. Stack trace of thread
- SSH框架 Tomcat报错 内存泄漏的解决办法This is very likely to create a memory leak. Stack trace of thread: java.ne
- How to Create Android Update Zip Package
- OutOfMemoryError: unable to create new native thread
- myeclipse unable to create new native thread
- hadoop: unable to create new native thread
- OutOfMemoryError: unable to create new native thread
- Hbase unable to create new native thread
- 乔布斯语录
- 爱刻薄讥讽别人的人其实内心不幸福
- C#获取当前路径的方法
- 毕业典礼上的演讲
- 19个非常有用的 jQuery 图片滑动插件和教程
- 10. 9. 1. 丑陋的表 Create a thread to update Swing
- 设置图片的透明度
- jQuery实现按比例缩放图片
- 10个有用的jquery 图片插件
- jQuery图片切换效果
- 骨骼动画资料搜集
- 哈希表,哈希算法,MD5加密算法初识
- 挚爱,执手一生,互爱彼此,共生共荣,不离不弃
- 分享30个最佳 jQuery Lightbox 效果插件