но это, кажется, обновляет экран только раз в секунду или около того.Я не уверен, что так долго.
System.out.println(pIn.available());
Я добавил приведенное выше утверждение в код actionPerformed таймера.Ничего не происходит, пока буфер не достигнет 1024 байта.Так что я думаю, вам нужно изменить размер буфера.
Кроме того, вы не должны использовать setText ().Неэффективно воссоздавать Документ каждый раз, когда вы вносите изменения.
Вы можете использовать:
out.replaceSelection(new String(buffer) );
Или более распространенный подход - использовать:
Document doc = textPane.getDocument();
doc.insertString("...", doc.getLength(), null);
Не думайте, что метод insertString () является поточно-ориентированным, но метод replaceSelection ():.
Edit:
Только что попытался поиграть с размером буфера 10 во входном потоке иочистка выходного потока, и это не имело никакого значения, поэтому я не понимаю потоковые потоки.