<!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>