第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

等待多個搖擺工人

等待多個搖擺工人

開滿天機 2019-06-19 16:42:46
等待多個搖擺工人請考慮以下代碼片段: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個贊

您所擁有的代碼已經(jīng)在一定程度上做到了這一點。單擊按鈕時,需要將標簽實際添加到內(nèi)容窗格中。就像這樣:

 JLabel label = new JLabel();
 getContentPane().add(label);
 getContentPane().validate();
 new Worker(label).execute();

在標簽中添加一些文本可能是個好主意,這樣當它被添加到屏幕上時,您就可以看到它了。

 JLabel label = new JLabel("Hello...I am here");

最后,在doInBackplace()方法中,您可以在某些任務運行時添加一些代碼來更新標簽:

 for(int i = 0;i < 100; i++){
            Thread.sleep(20);
            label.setText("Counting..." + i);
  }

這樣,您就可以實際看到任務正在運行。如果您多次單擊該按鈕,則會看到多個標簽,每個標簽都會在任務完成后消失。


查看完整回答
反對 回復 2019-06-19
  • 2 回答
  • 0 關注
  • 394 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號