簡體   English   中英

java setText in loop

[英]java setText in loop

嗨,我試圖在循環中將 setText 設置為 JTextArea,但我想這樣做,在每個循環中,每一行都會在幀中看到。

我已經嘗試過Thread.sleep(500) ,因為我認為循環太快而無法設置每一行,但它沒有幫助。

可能嗎?? 去做吧? 我想這樣做是為了向用戶顯示從數據庫下載文件的進度。

我認為JTextArea.append(text)可能更有用。

基於事件的單線程 gui 的性質使得更改只有在事件完全處理后才可見(從事件處理程序返回)

阻塞事件調度線程無濟於事(甚至使整個應用程序無響應

您應該使用計時器來模擬當時的添加時間,中間有延遲

final String[] lines;
for(int i=0; i<10; i++){
    Timer t = new Timer(500*i,new ActionListener(){
        int ind=i;
        void actionPerformed(ActionEvent e){
            area.setText(area.getText() + "\n ..."); 
        }
    });
    t.start();
}

這將創建 10 個計時器,每個計時器在一段時間后添加一行(增量為 500)
有一種更好的方法可以重用計時器並在一切完成后停止它,但它有點冗長

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM