等待多個搖擺工人請考慮以下代碼片段:import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;import javax.swing.*;public class TestApplet extends JApplet{
@Override
public void init()
{
try
{
SwingUtilities.invokeAndWait(new Runnable()
{
@Override
public void run()
{
createGUI();
}
});
}
catch(InterruptedException | InvocationTargetException ex)
{
}
}
private void createGUI()
{
getContentPane().setLayout(new FlowLayout());
JButton startButton = new JButton("Do work");
startButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
JLabel label = new JLabel();
new Worker(label).execute();
}
});
getContentPane().add(startButton);
}
private class Worker extends SwingWorker<Void, Void>
{
JLabel label;
public Worker(JLabel label)
{
this.label = label;
}
@Override
protected Void doInBackground() throws Exception
{
// do work
return null;
}
@Override
protected void done()
{
getContentPane().remove(label);
getContentPane().revalidate();
}
}}下面是向applet添加一個標簽,它顯示工作線程的一些中間結果(使用發(fā)布/處理方法)。最后,標簽從applet的窗格中移除。我的問題是,我如何創(chuàng)建多個標簽,每個標簽都有自己的工作線程,并在它們完成后刪除它們?提前謝謝。最新情況:我希望這能澄清我的問題。當所有的工人都完成了他們的任務,而不是在每個工人完成任務之后,我希望所有的標簽立即被移除。
2 回答

白衣非少年
TA貢獻1155條經(jīng)驗 獲得超0個贊
JLabel label = new JLabel(); getContentPane().add(label); getContentPane().validate(); new Worker(label).execute();
JLabel label = new JLabel("Hello...I am here");
for(int i = 0;i < 100; i++){ Thread.sleep(20); label.setText("Counting..." + i); }
添加回答
舉報
0/150
提交
取消