加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java中使用Swing GUI中的线程

发布时间:2020-12-15 02:02:01 所属栏目:Java 来源:网络整理
导读:我使用以下代码,每0.5秒替换一个JLabel,使用相同的句子,但使用另一个点. Runnable r1=new Runnable() { @Override public void run() { while(true){ try { connectionStatus.setText("Connection Established..."); Thread.sleep(500L); connectionStatus.s
我使用以下代码,每0.5秒替换一个JLabel,使用相同的句子,但使用另一个点.

Runnable r1=new Runnable() {
        @Override
        public void run() {
            while(true){
                try {
                    connectionStatus.setText("Connection Established...");
                    Thread.sleep(500L);
                    connectionStatus.setText("Connection Established.");
                    Thread.sleep(500L);
                    connectionStatus.setText("Connection Established..");
                    Thread.sleep(500L);
                } catch (InterruptedException ex) {

                }
            }
        }
    };
Thread th1=new Thread(r1);
th1.start();

这是使用线程的真正目的吗?这会影响程序的速度吗?如果我正在做的事情是如此愚蠢,还有其他方法来做这些愚蠢的事情吗?

解决方法

Is this the real purpose from using threads?

如果您希望这些操作并行运行,那么答案是肯定的

is there any other way to do such stupid things?

如果您以固定的时间间隔更新标签,那么您应该选择使用Timers

在旁注:

>你应该避免在执行多线程时使用while(true),你应该定义一个在循环中测试的stop boolean,或者如果扩展Thread类,则使用Thread.interrupted()>从非EDT线程更新UI元素时,应使用SwingUtilities.invokeLater

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读