编程语言
首页 > 编程语言> > java – SwingWorker扩展类没有显示重叠方法

java – SwingWorker扩展类没有显示重叠方法

作者:互联网

这是我的示例代码…我面临的问题是我的swingWorker扩展类只向我显示doInBackground()作为重叠方法.我也想使用done()和process()方法,但我的类没有显示它@overided,也没有调用done / process方法,需要调用离开while循环的东西等因为我知道它是无限循环但是为什么不是在publish()上调用process方法?

 public class getChatSwingWorkerThread extends SwingWorker<String , String> {
 private final JTextArea chat_text_area;
 private PostDataConnection post = null;
 private BasicUserInterface chatWindow = null;

public getChatSwingWorkerThread(JTextArea text_area){
    chatWindow = new BasicUserInterface();
    this.chat_text_area = text_area;
    post = new PostDataConnection();
}
@Override
protected String doInBackground() throws Exception {
    String returnData = "";
    while(true){
        returnData = post.getAvailableChat();
        if(!returnData.equals("")){
            publish(returnData);
            }
       } 

}
protected void process(String returnData) {

    chat_text_area.append(returnData);
}

 public void done(String returnData) throws InterruptedException, ExecutionException{
    chat_text_area.append(get());
}

解决方法:

这是因为您的进程和完成方法与超类中的签名具有不同的签名.

过程方法的签名是

protected void process(List<V> chunks)

在你的情况下归结为

protected void process(List<String> chunks)

done方法没有任何参数

protected void done()

标签:event-dispatch-thread,swingworker,java,multithreading,swing
来源: https://codeday.me/bug/20190901/1785042.html