2929
3030class DebugWindow {
3131
32- private static final PrintStream sysOut = System .out ;
33- private static final PrintStream sysErr = System .err ;
3432 private static final Stage debugStage = new Stage ();
35- private static final PrintStream myPrintStream ;
3633
3734 static {
3835 var vBox = new VBox ();
@@ -45,41 +42,31 @@ class DebugWindow {
4542 vBox .getChildren ().add (textArea );
4643 debugStage .setTitle ("Debug Log" );
4744 debugStage .setScene (new Scene (vBox ));
48- debugStage .setOnCloseRequest ((event ) -> {
49- hide ();
50- event .consume ();
45+ final PrintStream sysOut = System .out ;
46+ final PrintStream sysErr = System .err ;
47+ debugStage .setOnHiding (_ -> {
48+ System .setOut (sysOut );
49+ System .setErr (sysErr );
5150 });
5251
53- myPrintStream = new PrintStream (new OutputStream () {
52+ final var myPrintStream = new PrintStream (new OutputStream () {
5453 @ Override
5554 public void write (int b ) {
5655 sysOut .write (b );
57- Utils .runSafe (() -> textArea .appendText (String . valueOf (( char ) b )));
56+ Utils .runSafe (() -> textArea .appendText (Character . toString ( b )));
5857 }
5958 });
60- }
61-
62- static void show () {
63- debugStage .show ();
64- System .setOut (myPrintStream );
65- System .setErr (myPrintStream );
66- }
67-
68- static void hide () {
69- debugStage .hide ();
70- System .setOut (sysOut );
71- System .setErr (sysErr );
72- }
73-
74- static boolean isShowing () {
75- return debugStage .isShowing ();
59+ debugStage .setOnShowing (_ -> {
60+ System .setOut (myPrintStream );
61+ System .setErr (myPrintStream );
62+ });
7663 }
7764
7865 static void toggleShowing () {
79- if (isShowing ()) {
80- hide ();
66+ if (debugStage . isShowing ()) {
67+ debugStage . hide ();
8168 } else {
82- show ();
69+ debugStage . show ();
8370 }
8471 }
8572
0 commit comments