Umleiten der Ausgabe in der Konsole, um die JavaFX-TextArea?

Möchte ich zeigen, das die Ausgabe der Konsole in eine JavaFX TextArea... leider ich finde keine Beispiel für JavaFX-aber nur für Java Swing, das nicht scheint zu funktionieren in meinem Fall.

EDIT:

Habe ich versucht, diesem Beispiel zu Folgen: http://unserializableone.blogspot.ch/2009/01/redirecting-systemout-and-systemerr-to.html

und erweiterte mein code, wie unten dargestellt. Es gibt jedoch keine Ausgabe in der Konsole nicht mehr in meinem Eclipse-IDE, aber auch keine Ausgabe in meiner TextArea. Irgendeine Idee, wo ich falsch mache?

public class Activity extends OutputStream implements Initializable {

@FXML
public static TextArea taRecentActivity;

public Activity() {
    //TODO Auto-generated constructor stub
}

@Override
public void initialize(URL location, ResourceBundle resources) {

    OutputStream out = new OutputStream() {
        @Override
        public void write(int b) throws IOException {
            updateTextArea(String.valueOf((char) b));
        }

        @Override
        public void write(byte[] b, int off, int len) throws IOException {
            updateTextArea(new String(b, off, len));
        }

        @Override
        public void write(byte[] b) throws IOException {
            write(b, 0, b.length);
        }
    };

    System.setOut(new PrintStream(out, true));
    System.setErr(new PrintStream(out, true));
}

private void updateTextArea(final String text) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            taRecentActivity.appendText(text);
        }
    });
}

@Override
public void write(int arg0) throws IOException {
    //TODO Auto-generated method stub

}
}
  • Meinst du, dass Sie erfassen möchten-System.aus-und/oder System.äh, oder wollen Sie zu erfassen protokollierte Meldungen über (und das sind viele) Java-Logging-APIs?
  • Ja, ich meine zu erfassen-System.out und System.err und leiten es an die TextArea-Komponente
  • Bitte erläutern Sie, was "nicht zu funktionieren scheint, in meinem Fall" bedeutet. Sind Sie eine Ausnahme? Wenn du dabei bist, poste bitte den gesamten StackTrace es. Beachten Sie auch, vorausgesetzt, ein byte ein Zeichen repräsentiert wird, ein problem für text-Inhalte, die außerhalb des ASCII-Bereichs.
  • Nun, eigentlich gibt es nichts zu zeigen, da ich einfach nicht Java-Swing-Komponenten in meinem code... So bin ich Frage mich, wie ich zeigen konnte, die die Ausgabe der Konsole in eine JavaFX-textarea-wie ich finde keine nützliche tutorial.
  • Ich aktualisierte mein code & verbunden mit einem tutorial, aber es funktioniert immer noch nicht. irgendwelche Ideen?
InformationsquelleAutor Airlike | 2014-11-11
Schreibe einen Kommentar