これが私のサンプルコードです...私のswingWorker拡張クラスがdoInBackground()をオーバーライドされたメソッドとしてしか表示しないという問題に直面しています。done() メソッドと process() メソッドも使用したいのですが、私のクラスでは @overrided が表示されず、while ループなどを呼び出す必要がある場合に done/process メソッドを呼び出すこともありません。これは無限ループであることはわかっているためですが、なぜでしょうか。プロセス メソッドは publish() で呼び出されませんか?
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());
}