看板 java 關於我們 聯絡資訊
※ 引述《omidofor (媽媽咪呀)》之銘言: : 因為你沒有提到任何相關資訊, : 所以我假設你寫的是Swing, : 目的是希望當按下一個按鈕之後, : 會讓一個Label以間隔一秒的速度不停的變換圖片。 : 假設你想要讓他變換10張圖, : 你目前的情況是: : 按下按鈕後, : 視窗會停住10秒, : 而最後停在最後一張圖片。 : 原因在於, : Swing在觸發一個事件之後, : 必須要等事件處理結束之後才會重新繪製畫面。 : 你現在可能是這樣做, : 按下按鈕 -> 執行actionPerformed -> 每秒換一張圖片 -> 結束actionPerformed : 以這個例子來說, : 視窗要等到結束actionPerformed結束之後才會重新繪製畫面。 : 因此你要在按下按鈕後起一個thread負責去更新圖片。 : 大概是這樣。 : new Thread(){ : @Override : public void run(){ : //do something : } : }.start(); : 你可以試試看用Java 8 Lambda改寫這個。 : 另外如果你想寫Java GUI的話, : 建議你可以學JavaFx8, : 這個功能就可以用animation來達成。 : 而且個人覺得JavaFx比Swing漂亮很多。 : 最後, : 有些事情想說明一下。 : 有時候我們會看到板上有些發問的文章沒有板眾解答, : 當出現這樣子的情況時, : 我覺得對發問者來說可能代表一種警訊。 : 「沒有人回答不是這個問題沒有人會,而是沒有人知道你在問什麼。」 : 因此當你要發問的時候, : 最好鉅細靡遺的講出, : 你在寫什麼、想寫什麼功能、你是怎麼做的、程式碼長怎樣, : 以及其他可以幫助板眾了解問題的資訊。 : 不然板友可沒有太多時間在那猜你的心思啊。 : 若是有不懂的或是情況不相同的話, : 再回覆到板上吧。 : ※ 引述《puppyulove (WHY)》之銘言: : : 請問一下如何連續播放圖片 : : 大約是1秒鐘放一張 : : 是設置sleep(1000)嗎 : : 但這樣子每次都只會跳出最後一張QQ : : 請問要怎麼用呢?~ 安安~ 還有問題要請教您 我是利用setImageBitmap來生成圖片(QR碼) 外面包覆for迴圈 像是 for(int i=0;i<=10;i++) { try { BitMatrix matrix2 = writer.encode("1234", BarcodeFormat.QR_CODE, 800, 800); mQrcodeImage.setImageBitmap(toBitmap(matrix2)); } catch (WriterException e) {} try{ thread sleep(1000); }catch(InterruptedException e1){} } 這樣的話要怎麼創新的thread更新圖片,讓它可以在這10張圖片中各停頓一秒呢? 要在新增一個class作新的new thread 在呼叫進去嗎? 感激~>< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.115.137 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1455519182.A.D90.html
omidofor: 你這個問題我上篇文就回答你啦,你現在不清楚的應該是 02/15 18:02
omidofor: thread的使用,找本書看一下比較能有全面的了解。 02/15 18:03
Expsun: 官網有SwingWorker的教學 02/16 04:50
puppyulove: 我加入了new Thread()但是跑第一張圖完等一秒後就會 02/16 12:14
puppyulove: ANR 跳出來QQ 為甚麼呢? 02/16 12:14
puppyulove: 是要把原先位置的圖移除後再放嗎? 可以直接覆蓋嗎?~ 02/16 14:53
omidofor: 結果現在才知道你在寫android... 02/16 18:44
puppyulove: 呃~ 差別在哪裡呢QQ IDE嗎 02/17 13:26
puppyulove: 我去AS版問看看好了~~ 感謝 02/17 15:51