【求助】如何快速更新java标签内容啊?

训练有素的咸鱼 2019-02-11 02:34:51
rt,从网上获取股票实时信息,然后显示到JLabel标签上。结果窗口更新慢的一批,无法同步更新啊。
ps:肯定不是获取信息速度慢,数据获取速度撒欢似的跑,窗口更新一次都够获取数据十几次了。

下面是我写的方法,realTime是获取信息,t是想要进行更新的标签


public Runnable update(JLabel t){
// TODO Auto-generated method stub
String read=null;
String name;
float pic;
float last;
int [][]a=null;

try {
while(true){
read=realTime.getInfor("sz000001");
a=realTime.sub;
name=read.substring(a[1][0],a[1][1]);
pic=Float.valueOf(read.substring(a[4][0],a[4][1]));
last=Float.valueOf(read.substring(a[3][0],a[3][1]));
/*if(pic>last){
t.setForeground(Color.red);
}else{
t.setForeground(Color.green);
}*/
t.setText(name+" "+pic);
Thread.sleep(1);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;

}
...全文
154 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 12 楼 大隐藏于寺 的回复:
引用 11 楼 我已经是条咸鱼了 的回复:
[quote=引用 7 楼 qq_39936465 的回复:] 都说了,你这个方法只是设置标签值,你需要线程更新是容器重绘,把容器写到线程中。
哎呀谢谢,现在更新速度快好多了
楼主解决了么[/quote]解决了
  • 打赏
  • 举报
回复
引用 10 楼 weixin_42220594 的回复:
引用 8 楼 我已经是条咸鱼了 的回复:
[quote=引用 4 楼 weixin_42220594 的回复:] [quote=引用 3 楼 我已经是条咸鱼了 的回复:] [quote=引用 2 楼 weixin_42220594 的回复:] http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
是方法另外的线程里面的,不是main线程[/quote]我通过new Thread(update(t)).start();调用update方法的,这也是main线程的吗?[/quote]

public class ThreadDemo {

    public static void main(String[] args) {
        new Thread(test()).start();
        new Thread(test1()).start();
    }

    public static Runnable  test(){
        System.out.println(Thread.currentThread().getName());
        return  null;
    }
    public static Runnable  test1(){

        return () -> System.out.println(Thread.currentThread().getName());
    }
}
你可以试下运行结果,test运行出来的结果是main线程,test1()是新的线程,你的update()方法就没有返回一个Runnable实现类[/quote]还真是。。。原来线程要这么用的啊
大隐藏于寺 2019-02-11
  • 打赏
  • 举报
回复
引用 11 楼 我已经是条咸鱼了 的回复:
引用 7 楼 qq_39936465 的回复:
都说了,你这个方法只是设置标签值,你需要线程更新是容器重绘,把容器写到线程中。
哎呀谢谢,现在更新速度快好多了
楼主解决了么
  • 打赏
  • 举报
回复
引用 7 楼 qq_39936465 的回复:
都说了,你这个方法只是设置标签值,你需要线程更新是容器重绘,把容器写到线程中。
哎呀谢谢,现在更新速度快好多了
weixin_42220594 2019-02-11
  • 打赏
  • 举报
回复
引用 8 楼 我已经是条咸鱼了 的回复:
引用 4 楼 weixin_42220594 的回复:
[quote=引用 3 楼 我已经是条咸鱼了 的回复:] [quote=引用 2 楼 weixin_42220594 的回复:] http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
是方法另外的线程里面的,不是main线程[/quote]我通过new Thread(update(t)).start();调用update方法的,这也是main线程的吗?[/quote]

public class ThreadDemo {

    public static void main(String[] args) {
        new Thread(test()).start();
        new Thread(test1()).start();
    }

    public static Runnable  test(){
        System.out.println(Thread.currentThread().getName());
        return  null;
    }
    public static Runnable  test1(){

        return () -> System.out.println(Thread.currentThread().getName());
    }
}
你可以试下运行结果,test运行出来的结果是main线程,test1()是新的线程,你的update()方法就没有返回一个Runnable实现类
qq_39936465 2019-02-11
  • 打赏
  • 举报
回复
或者你加一个事件触发器,设置1秒触发一次。
  • 打赏
  • 举报
回复
引用 4 楼 weixin_42220594 的回复:
引用 3 楼 我已经是条咸鱼了 的回复:
[quote=引用 2 楼 weixin_42220594 的回复:] http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
是方法另外的线程里面的,不是main线程[/quote]我通过new Thread(update(t)).start();调用update方法的,这也是main线程的吗?
qq_39936465 2019-02-11
  • 打赏
  • 举报
回复
都说了,你这个方法只是设置标签值,你需要线程更新是容器重绘,把容器写到线程中。
weixin_42220594 2019-02-11
  • 打赏
  • 举报
回复
引用 2 楼 weixin_42220594 的回复:
引用 3 楼 我已经是条咸鱼了 的回复:
[quote=引用 2 楼 weixin_42220594 的回复:] http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
是方法另外的线程里面的,不是main线程[/quote] 放在另外的线程更新的,不是main线程.打错字了....
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465 的回复:
要设定放置标签的容器的重绘刷新时间,光设置标签值没用。只会输出容器刷新时刻的标签值
那我那个方法要怎么修改呢
weixin_42220594 2019-02-11
  • 打赏
  • 举报
回复
引用 3 楼 我已经是条咸鱼了 的回复:
引用 2 楼 weixin_42220594 的回复:
http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
是方法另外的线程里面的,不是main线程
  • 打赏
  • 举报
回复
引用 2 楼 weixin_42220594 的回复:
http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
我不是已经让它sleep一秒了吗
weixin_42220594 2019-02-11
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xiaoran1129/articles/2576111.html 看一下,能帮得上不
qq_39936465 2019-02-11
  • 打赏
  • 举报
回复
要设定放置标签的容器的重绘刷新时间,光设置标签值没用。只会输出容器刷新时刻的标签值

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧