Ugly flashing when opening a css-styled stage
Tom Schindl
tom.schindl at bestsolution.at
Mon Jun 2 08:04:40 UTC 2014
To rule out CSS is the reason you could directly set the background:
pane.setBackground(new Background(new BackgroundFill(Color.rgb(54, 54,
54), CornerRadii.EMPTY, Insets.EMPTY)));
Does that improve the situation?
Tom
On 02.06.14 09:51, Robert Krüger wrote:
> Thanks but it does not seem to improve the situation.
>
> btw, I am using 1.8.0_05-b13 on Mac OS 10.9.3 on a retina MBP.
>
> On Sun, Jun 1, 2014 at 9:59 PM, Jeff Martin <jeff at reportmill.com> wrote:
>> I haven't seen this, but here's a hack you can try:
>>
>> // Show stage transparent once to get proper drawing
>> _stage.setOpacity(0); _stage.show(); _stage.hide(); _stage.setOpacity(1);
>>
>> I've done this before to trigger Stage to set it's width/height property (which I needed to position the stage property).
>>
>> jeff
>>
>>
>> On Jun 1, 2014, at 3:18 AM, Robert Krüger <krueger at lesspain.de> wrote:
>>
>>> Hi,
>>>
>>> I'm in the process of evaluating Java FX 8 for our currently
>>> Swing-based product (also Java 8) on OSX.
>>>
>>> My first attempt to style a stage's background resulted in an ugly
>>> flashing effect which I would classify as a show-stopper for
>>> delivering a commercial product. This looks like it is caused by the
>>> stage being drawn at least once before the style has been applied, and
>>> I am wondering what the mistake is since my code is more or less a
>>> straight-forward hello world:
>>>
>>> package jfxtest;
>>>
>>> import javafx.application.Application;
>>> import javafx.scene.Scene;
>>> import javafx.scene.control.Button;
>>> import javafx.scene.layout.StackPane;
>>> import javafx.stage.Stage;
>>>
>>> public class JXTest extends Application {
>>>
>>> @Override
>>> public void start(Stage primaryStage) throws Exception {
>>> final StackPane pane = new StackPane();
>>> final Button closeButton = new Button("Close");
>>> closeButton.setOnAction(event -> primaryStage.close());
>>> pane.getChildren().add(closeButton);
>>> final Scene scene = new Scene(pane, 800, 600);
>>> scene.getStylesheets().add("dark.css");
>>> scene.getStylesheets();
>>> primaryStage.setScene(scene);
>>> primaryStage.setTitle(getClass().getSimpleName());
>>> primaryStage.show();
>>> }
>>>
>>> public static void main(String[] args) {
>>> launch(args);
>>> }
>>> }
>>>
>>> with dark.css being:
>>>
>>> .root {
>>> -fx-background: rgb(54, 54, 54);
>>> }
>>>
>>> Is this a Mac-specific problem? Is there a workaround? Which of the
>>> two mailing lists is the more appropriate one to post these things
>>> (JFX problems which look like they might be platform-specific) to?
>>>
>>> Thanks,
>>>
>>> Robert
>>
More information about the openjfx-dev
mailing list