简体   繁体   English

循环在JLabel中设置文本

[英]Setting text in JLabel in a loop

                start = System.currentTimeMillis();
                FileReader filereader1 = new FileReader("virus_database/point.dat");
                JTextField jtextfield1 = new JTextField();
                jtextfield1.read(filereader1, null);
                point = Integer.parseInt(jtextfield1.getText());
                filereader1.close();
                scanFileName.setText("");
                scanFileName.setText("Please wait. Loading Database...");
                for(int i = 0; i < point && cmd != 1; i++)
                {
                    FileReader filereader4 = new FileReader((new StringBuilder()).append("virus_database/malware").append(i).append(".res").toString());
                    JTextField jtextfield4 = new JTextField();
                    jtextfield4.read(filereader4, null);
                    database[i] = jtextfield4.getText();
                    filereader4.close();
                    int k6 = (i * 100) / point;
                }
                scanFileName.setText(".");

I still don't understand why the output in scanFileName (Jlabel) is directly showing "." 我仍然不明白为什么scanFileName(Jlabel)中的输出直接显示“。” instead of "", "Please Wait. Loading Database...", and then ".". 而不是“”,“请稍候。正在加载数据库...”,然后是“。”。 Please help. 请帮忙。 I'd be grateful to you. 我会很感激你

Start by having a read through Concurrency in Swing . 首先阅读Swing中的并发性

Swing is a single threaded framework, this means that anything which blocks this thread (like Thread.sleep ) will prevent the framework from processing new events (including paint requests). Swing是一个单线程框架,这意味着阻止该线程的任何内容(例如Thread.sleep )都将阻止该框架处理新事件(包括绘画请求)。

While there are any number of ways you might make this work, probably the easiest is a Swing javax.swing.Timer . 尽管可以通过多种方式实现此目的,但最简单的javax.swing.Timer可能是Swing javax.swing.Timer Take a look at How to use Swing Timers for more details... 看看如何使用Swing计时器了解更多详细信息...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM