Probably bug: UI changes made while minimized, not reflected upon restore/maximize
John Hendrikx
john.hendrikx at gmail.com
Wed Mar 12 14:52:17 UTC 2025
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:
publicclassApp extendsApplication {
publicstaticvoidmain(String[] args) {
Application.launch(args);
}
@Override
publicvoidstart(Stage stage) {
Scene scene = newScene(newLabel("This should be modified when the signal
is received"), 500, 500);
stage.setScene(scene);
stage.setIconified(true);
stage.show();
}
}
--John
On 12/03/2025 02:36, Cormac Redmond wrote:
> That meant to say: the act of simply maximising the window
> ***doesn't*** seem to trigger a redraw.
>
>
> On Wed, 12 Mar 2025 at 00:19, Cormac Redmond <credmond at certak.com> wrote:
>
> Hi all,
>
> A user reported this on reddit:
> https://www.reddit.com/r/JavaFX/comments/1j8ibpf/platformrunlater_not_updating_the_content_when/
>
> I do feel this is a bug so I'm raising it here. Windows 11, JFX
> 23.0.2.
>
> 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.
>
> The act of simply maximising the window does seem to trigger a
> redraw. I think it should.
>
> Here are two fairly self-explanatory Java classes to demonstrate
> the problem (adapted from the reddit post).
>
> Steps:
>
> - Run MinimizeBugApp, observe label
> - Run Client, hit enter and observe label change as expected
> - Minimize app, and hit enter on Client one or more times (all
> triggering label changes)
> - Restore app, note Label incorrectly still *displays* the same
> value as before the minimize, despite update(s)
> - Re-size window to force a redraw, observe correct label value
> appears
>
>
> public class MinimizeBugApp extends Application {
>
> public void start(Stage stage) {
> Label label = new Label("This should be modified when the
> signal is received");
>
> StackPane stackPane = new StackPane();
> stackPane.getChildren().add(label);
> Scene scene = new Scene(stackPane, 500, 500);
> stage.setScene(scene);
> stage.show();
>
> new Thread(() -> {
> this.startServer(label);
> }).start();
> }
>
> void startServer(final Label label) {
> try (ServerSocket serverSocket = new ServerSocket(1590)) {
> while (true) {
> System.out.println("Waiting for connection...");
> serverSocket.accept();
> Platform.runLater(() -> {
> System.out.println("Setting signal is
> received...");
> label.setText("The signal is received " + new
> Date());
>
> // This will print the correct text, always --
> but the texted isn't what is reflected if
> // it's minimized and then maximized
> System.out.println("Label text should be: " +
> label.getText());
> });
> }
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
>
> public static void main(String[] args) {
> launch();
> }
> }
>
>
> // Simple test to trigger something in a JavaFX app via a socket
> public class Client {
> public static void main(String[] args) {
> Scanner scanner = new Scanner(System.in);
>
> while (true) {
> try {
> System.out.print("Hit enter to create connection");
> scanner.nextLine();
> new Socket("localhost", 1590);
> System.out.println("Created connection");
> } catch (IOException e) {
> e.printStackTrace();
> }
> }
> }
> }
>
>
> Any thoughts? Is this by design for some reason, or a bug?
>
>
>
> Kind Regards,
> *
> *
> *Cormac Redmond*
> Software Engineer, Certak Ltd.
> *
> *
> e: credmond at certak.com | m: +353 (0) 86 268 2152 | w:
> www.certak.com <http://www.certak.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250312/c655e6bc/attachment-0001.htm>
More information about the openjfx-dev
mailing list