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