<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Here's a simpler version that shows the problem. It appears that
      a stage in iconified mode (minimized) is simply not doing any
      updates when it becomes visible again. In my system, when I click
      the task bar to show the stage, I just see an empty box (with a
      color that is clearly not the correct background color). A resize
      will show the label, and the background color changes to the
      correct one:</p>
    <div style="background-color:#ffffff;padding:0px 0px 0px 2px;">
      <div
style="color:#000000;background-color:#ffffff;font-family:"Consolas";font-size:11pt;white-space:pre;"><p
      style="margin:0;"><span style="color:#000000;">    </span><span
      style="color:#0000a0;font-weight:bold;">public</span><span
      style="color:#000000;"> </span><span
      style="color:#0000a0;font-weight:bold;">class</span><span
      style="color:#000000;"> App </span><span
      style="color:#0000a0;font-weight:bold;">extends</span><span
      style="color:#000000;"> Application {</span></p><p
      style="margin:0;"><span style="color:#000000;">    </span></p><p
      style="margin:0;"><span style="color:#000000;">        </span><span
      style="color:#0000a0;font-weight:bold;">public</span><span
      style="color:#000000;"> </span><span
      style="color:#0000a0;font-weight:bold;">static</span><span
      style="color:#000000;"> </span><span
      style="color:#0000a0;font-weight:bold;">void</span><span
      style="color:#000000;"> main(String[] args) {</span></p><p
      style="margin:0;"><span style="color:#000000;">            Application.</span><span
      style="color:#000000;font-style:italic;">launch</span><span
      style="color:#000000;">(args);</span></p><p style="margin:0;"><span
      style="color:#000000;">        }</span></p><p style="margin:0;"><span
      style="color:#000000;">    </span></p><p style="margin:0;"><span
      style="color:#000000;">        </span><span style="color:#646464;">@Override</span></p><p
      style="margin:0;"><span style="color:#000000;">        </span><span
      style="color:#0000a0;font-weight:bold;">public</span><span
      style="color:#000000;"> </span><span
      style="color:#0000a0;font-weight:bold;">void</span><span
      style="color:#000000;"> start(Stage stage) {</span></p><p
      style="margin:0;"><span style="color:#000000;">            Scene scene = </span><span
      style="color:#0000a0;font-weight:bold;">new</span><span
      style="color:#000000;"> Scene(</span><span
      style="color:#0000a0;font-weight:bold;">new</span><span
      style="color:#000000;"> Label(</span><span style="color:#2a00ff;">"This should be modified when the signal is received"</span><span
      style="color:#000000;">), 500, 500);</span></p><p
      style="margin:0;"><span style="color:#000000;">    </span></p><p
      style="margin:0;"><span style="color:#000000;">            stage.setScene(scene);</span></p><p
      style="margin:0;"><span style="color:#000000;">    </span></p><p
      style="margin:0;"><span style="color:#000000;">            stage.setIconified(</span><span
      style="color:#0000a0;font-weight:bold;">true</span><span
      style="color:#000000;">);</span></p><p style="margin:0;"><span
      style="color:#000000;">            stage.show();</span></p><p
      style="margin:0;"><span style="color:#000000;">        }</span></p><p
      style="margin:0;"><span style="color:#000000;">    }</span></p></div>
    </div>
    <p></p>
    <p>--John<br>
    </p>
    <div class="moz-cite-prefix">On 12/03/2025 02:36, Cormac Redmond
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAG_-AaBJ2c65MAqpTC68a-T7DxcGPbELUHc+FZ+Q=fHKMY2SZw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div class="gmail_default"
            style="font-family:verdana,sans-serif">
            <div class="gmail_default" style="color:rgb(0,0,0)">That
              meant to say: the act of simply maximising the window
              ***doesn't*** seem to trigger a redraw.</div>
            <div class="gmail_default" style="color:rgb(0,0,0)"><br>
            </div>
          </div>
        </div>
        <br>
        <div class="gmail_quote gmail_quote_container">
          <div dir="ltr" class="gmail_attr">On Wed, 12 Mar 2025 at
            00:19, Cormac Redmond <<a
              href="mailto:credmond@certak.com" moz-do-not-send="true"
              class="moz-txt-link-freetext">credmond@certak.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div dir="ltr">
              <div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Hi
                  all,</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">A
                  user reported this on reddit: <a
href="https://www.reddit.com/r/JavaFX/comments/1j8ibpf/platformrunlater_not_updating_the_content_when/"
                    target="_blank" moz-do-not-send="true"
                    class="moz-txt-link-freetext">https://www.reddit.com/r/JavaFX/comments/1j8ibpf/platformrunlater_not_updating_the_content_when/</a></div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">I
                  do feel this is a bug so I'm raising it here. Windows
                  11, JFX 23.0.2.</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">A
                  quick summary is: if you change a Label while your app
                  is minimized, for example, the change does not get
                  reflected when restored/maximised, unless _something
                  else_ triggers a redraw, such as a window resize, or a
                  hover over a button, etc. </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">The
                  act of simply maximising the window does seem to
                  trigger a redraw. I think it should.</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Here
                  are two fairly self-explanatory Java classes to
                  demonstrate the problem (adapted from the reddit
                  post).</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Steps: </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">-
                  Run MinimizeBugApp, observe label</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">-
                  Run Client, hit enter and observe label change as
                  expected</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">-
                  Minimize app, and hit enter on Client one or more
                  times (all triggering label changes)</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">-
                  Restore app, note Label incorrectly still *displays*
                  the same value as before the minimize, despite
                  update(s)</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">-
                  Re-size window to force a redraw, observe correct
                  label value appears</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">public
                  class MinimizeBugApp extends Application {<br>
                  <br>
                      public void start(Stage stage) {<br>
                          Label label = new Label("This should be
                  modified when the signal is received");<br>
                  <br>
                          StackPane stackPane = new StackPane();<br>
                          stackPane.getChildren().add(label);<br>
                          Scene scene = new Scene(stackPane, 500, 500);<br>
                          stage.setScene(scene);<br>
                          stage.show();<br>
                  <br>
                          new Thread(() -> {<br>
                              this.startServer(label);<br>
                          }).start();<br>
                      }<br>
                  <br>
                      void startServer(final Label label) {<br>
                          try (ServerSocket serverSocket = new
                  ServerSocket(1590)) {<br>
                              while (true) {<br>
                                  System.out.println("Waiting for
                  connection...");<br>
                                  serverSocket.accept();<br>
                                  Platform.runLater(() -> {<br>
                                      System.out.println("Setting signal
                  is received...");<br>
                                      label.setText("The signal is
                  received " + new Date());<br>
                  <br>
                                      // This will print the correct
                  text, always -- but the texted isn't what is reflected
                  if<br>
                                      // it's minimized and then
                  maximized<br>
                                      System.out.println("Label text
                  should be: " + label.getText());<br>
                                  });<br>
                              }<br>
                          } catch (Exception e) {<br>
                              e.printStackTrace();<br>
                          }<br>
                      }<br>
                  <br>
                      public static void main(String[] args) {<br>
                          launch();<br>
                      }<br>
                  }</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">//
                  Simple test to trigger something in a JavaFX app via a
                  socket<br>
                  public class Client {<br>
                      public static void main(String[] args) {<br>
                          Scanner scanner = new Scanner(System.in);<br>
                  <br>
                          while (true) {<br>
                              try {<br>
                                  System.out.print("Hit enter to create
                  connection");<br>
                                  scanner.nextLine();<br>
                                  new Socket("localhost", 1590);<br>
                                  System.out.println("Created
                  connection");<br>
                              } catch (IOException e) {<br>
                                  e.printStackTrace();<br>
                              }<br>
                          }<br>
                      }<br>
                  }</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Any
                  thoughts? Is this by design for some reason, or a bug?</div>
                <div
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br>
                </div>
                <br clear="all">
              </div>
              <div>
                <div dir="ltr" class="gmail_signature">
                  <div dir="ltr">
                    <div><font face="verdana, sans-serif"
                        color="#000000"><br>
                      </font></div>
                    <div><font face="verdana, sans-serif"
                        color="#000000"><span class="gmail_default"
style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">Kind </span>Regards,</font></div>
                    <div><font face="verdana, sans-serif"
                        color="#000000"><b><br>
                        </b></font></div>
                    <font face="verdana, sans-serif" color="#000000"><b>Cormac
                        Redmond</b></font>
                    <div><font face="verdana, sans-serif"
                        color="#000000">Software Engineer, Certak Ltd.</font></div>
                    <div><font color="#000000"><b><br>
                        </b></font></div>
                    <div><font size="2" face="verdana, sans-serif">e: <a
                          href="mailto:credmond@certak.com"
                          target="_blank" moz-do-not-send="true"
                          class="moz-txt-link-freetext">credmond@certak.com</a>
                        | m: +353 (0) 86 268 2152 | w: <a
                          href="http://www.certak.com" target="_blank"
                          moz-do-not-send="true">www.certak.com</a></font></div>
                    <div><br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
  </body>
</html>