У меня есть проект, который печатает числа построчно в консоли, и я успешно перенаправил его на мой GUI Jframe, который я использую для этого приложения. Однако, когда числа печатаются в TextArea, они не отображаются красиво один за другим, как скользящий список. Вместо этого я вижу, что вся TextArea мигает и печатает снова и снова. Как только чтение закончено, все выглядит правильно в TextArea. Был бы способ настроить это правильно, чтобы он печатался так же, как я это вижу в консоли?
Большое спасибо за что-нибудь полезное!
За перенаправление system.out, у меня есть следующий код:
package ibanchecker03;
import java.io.IOException;
import java.io.OutputStream;
import javax.swing.JTextArea;
public class CustomOutputStream extends OutputStream {
private JTextArea textArea;
public CustomOutputStream(JTextArea textArea){
this.textArea=textArea;
}
@Override
public void write(int b) throws IOException {
// redirects data to the text area
textArea.append(String.valueOf((char)b));
// scrolls the text area to the end of data
textArea.setCaretPosition(textArea.getDocument().getLength());
// keeps the textArea up to date
textArea.update(textArea.getGraphics());
}
}
Затем внутри класса приложения у меня есть это, чтобы перенаправить вывод:
PrintStream printStream = new PrintStream(new CustomOutputStream(display));
System.setOut(printStream);
System.setErr(printStream);