我是Swing的新手,我試圖這樣做:如何在Swing中進行一些處理時重新繪製標籤?
按下JButton時,程序將開始迭代數百個項目,每秒處理1秒,每完成一項更新標籤以顯示已處理的物品數量。
問題是,標籤的文本不會更新,直到週期完成迭代所有項目爲止。
我在網上搜索,顯然這是因爲它在同一個線程中運行,所以我創建了一個新線程來處理數據並更新要在標籤中使用的變量(已處理文件的數量)。
但它沒有奏效。然後,我甚至製作了另一個線索,我從之前的一個線索開始,重新繪製標籤。仍然沒有用。
的代碼是這樣的:
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try { SwingUtilities.invokeLater(validateFiles); }
}); }
Runnable validateFiles = new Runnable() {
@Override
public void run() {
while(x_is_not_100) {
processLoadsOfStuff();
label.setText(x); }
}
};
你能幫助我嗎?
因爲我記得很好的化身(...)+1 – mKorbel