JAVA怎么定时自动画图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA怎么定时自动画图相关的知识,希望对你有一定的参考价值。
我要用JAVA画一个折线图,每秒会从数据库中读取一个数字,然后自动在画布上刷新,程序该怎么写,,,我画图会画,加一个定时器不知道该怎么加,在定时器中画图不显示,最好能有代码,谢谢
参考技术A 用线程, 画布那里提供一个画的方法,然后 写个线程 里面是while(true) 的 在这里面读取然后调用画布提供的方法,然后让线程sleep一下追问还是看不太明白,能贴上代码么,谢谢
参考技术B 使用SwingWorker + ScheduledExecutorService 参考技术C 会画图就容易多了,给你个思路,多线程。 将画图部分创建一个独立的线程来处理。还不清楚在说,我弄个demo给你看看。追问
还是看不太明白,能贴上代码么,谢谢
追答package swing;import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestThreadGrp
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
JFrame jf = new JFrame("测试标题");
jf.setSize(300,400);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel jl = new JLabel(); //定义个可以在上面绘图的控件
jf.add(jl,BorderLayout.CENTER); //加入窗体中心位置
Thread th = new Thread() //定义一个线程
@Override
public void run() //覆盖线程的运行方法
// TODO Auto-generated method stub
for(int i=0;i<100;i++) //循环100次
jl.getGraphics().clearRect(0, 0, 300, 400); //先清除上一次绘制的图案
jl.getGraphics().drawString(i+"", 100, 100); //将文字绘制到绘图控件
try
Thread.sleep(1000); //延时1秒
catch (InterruptedException e)
// TODO Auto-generated catch block
e.printStackTrace();
;
jf.setVisible(true); //显示窗体
th.start(); //线程启动
很简单的一个demo,能看明白么?本回答被提问者采纳
以上是关于JAVA怎么定时自动画图的主要内容,如果未能解决你的问题,请参考以下文章
java在servlet里设置个定时器,让其在tomcat一运行时,自动每隔几个小时执行一个任务?