[問題]SwingWorker.setProgress()與PropertyChangeEvent

看板java作者時間9年前 (2016/04/15 03:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我想測試每次呼叫setProgress()是否都會產生一個progress的PropertyChangeEvent, 所以我在doInBackground()呼叫setProgress()100次, 希望可以在ProperyChangeListener catch到100次event, 可是下面的code跑出來的結果連一次都沒有執行到, 可以請好心人幫忙看一下是拿裡出了問題嗎?謝謝! import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; public class ThreadTest { public static void main(String[] args) { new ProgBar().execute(); } } class ProgBar extends SwingWorker<Void, Void> { public ProgBar() { addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("progress".equals(evt.getPropertyName())) { int value = (Integer) evt.getNewValue(); System.out.println("propertyChange called with: " + value); } } }); setProgress(0); } public Void doInBackground() throws InterruptedException { int count = 0; // simulate uploading files while (count < 100){ count += 1; setProgress(count); Thread.sleep(4000); } return null; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.153.185 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1460661876.A.BFB.html
文章代碼(AID): #1N3-vqlx (java)
文章代碼(AID): #1N3-vqlx (java)