java - SwingWorker 扩展类未显示覆盖的方法

标签 java multithreading swing swingworker event-dispatch-thread

这是我的示例代码...我面临的问题是我的 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());
}

最佳答案

那是因为您的 processdone 方法与父类(super class)中的签名不同。

process 方法的签名是

protected void process(List<V> chunks)

在你的情况下归结为

protected void process(List<String> chunks)

done 方法没有任何参数

protected void done()

关于java - SwingWorker 扩展类未显示覆盖的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893797/

相关文章:

java - 写入时在控制台中显示文本

javascript - YUIcompressor 指令前缺少分号

android - MotionEvent 在仍在使用时被回收

java - JTabbedPane 中固定位置或一行中的选项卡

Java - 使用 JScrollPane

java - 我正在尝试使用 2 个用户输入来填充二维列表数组

java - 如何使内部类不可实例化?

java - 为什么在使用多线程方法后我的 GUITAR 仍然卡住?

c++ - 如何在 C++ 线程中正确处理永久挂起的第三方库调用?

具有多个 JFrame 的 java.util.observer