Closed yuan236 closed 5 months ago
Hi @yuan236
Thanks for the report.
Can you be more descriptive in your issue report? What happens and what would you like to happen? What exactly is the issue?
I'm going to guess that the issue is that "Bad code" doesn't work like "Good code" even though they seem to be functionally similar. If that's the case it is likely a JavaFX issue and not a JMetro issue as JMetro doesn't change anything that would alter the way styles are applied when adding Nodes after the Stage is shown...
JMetro sets a user agent stylesheet and that should define the styles for any node that is already in the stage or any node that's added afterwards in the future. Perhaps you might want to try forcing the css parser to run again (something like calling the applyCss() method).
Thanks!
Hi @dukke , sorry my English is so bad. In using JMetro, If I use 'JMetro jMetro = new JMetro(Style.DARK);jMetro.setScene(scene);' and 'pane.getChildren().add(text)' after a 'stage.show()', 'text.setFill()' will no longer have any effect. it's like 'Bad Code'.
Hi again,
Sorry for the late reply.
That's actually to be expected.
I said before that JMetro sets a "user agent stylesheet", I actually meant that it sets a Scene stylesheet. Look at the CSS reference documentation, in the "Scene, Parent and SubScene Stylesheets" section: https://openjfx.io/javadoc/22/javafx.graphics/javafx/scene/doc-files/cssref.html
So if you want to override in code a style set in a Scene stylesheet you need to call "setStyle(...)"
Thanks!
Java version: 21 JMetro version: 11.6.16
Good code
Bad code