我在某处看到,对于影响gui视觉效果的任何线程,它应该使用SwingUtilities.invokeAndWait / invokeLater在EDT中运行 对于一个基本的gui,是否需要添加类似new SwingGUI().setVisible(true); 在使用invokeAndWait的EDT中? 只是为了展示? 这算数了吗?
在许多情况下,线程A需要一个必须在线程B上计算的值。(最常见的是,B == EDT。)考虑这个例子: String host; SwingUtilities.invokeAndWait(new Runnable() { public void run() { host = JOptionPane.showInputDialog(“Enter host name: “); } }); openConnection(host); 当然,这不会编译,因为匿名内部类不允许写入host 。 让这个最简单,最干净的方法是什么? 我已经在下面列出了我所知道的方式。
我正在尝试将JProgressBar添加到我的程序中,但它不会更新! 只有在100%的原因后,该值才会更改。 这是我的方法。 public void downloadImages(List images) { if (errorCode == 0) { for (int i = 0; i < images.size(); i++) { if (errorCode == 0) { main.progressLabel.setText("Downloading image " + Integer.toString(i + 1) + " of " + Integer.toString(images.size())); String imageStr = images.get(i); String imageName = imageStr.substring(imageStr.lastIndexOf("/") + 1); try { URL url […]