Search code examples
cssjavafx-2javafxjavafx-8

How to convert css into bss


I found this post http://docs.oracle.com/javafx/2/deployment/packaging.htm#BABCACBD

Can you tell me how I can use this tool to convert css files into bss files? From the information on the web site it's not very clear how I can use it for JavaFX application.

Any help will be highly appreciated.


Solution

  • Let's imagine your jdk 8 home bin directory is on your shell path.

    Create Love.java:

    import javafx.stage.*;
    import javafx.application.*;
    import javafx.scene.control.*;
    import javafx.scene.*;
    
    public class Love extends Application {
      public void start(Stage stage) throws Exception {
        Scene scene = new Scene(new Label("hello, world"));
        scene.getStylesheets().add("love.css");
        stage.setScene(scene);
        stage.show();
      }
    }
    

    Compile it:

    javac Love.java
    

    Create love.css:

    .label { -fx-text-fill: firebrick; }
    

    Compile it:

    javafxpackager -createbss -srcfiles love.css -outdir . -outfile love
    

    This will create love.bss

    Now you can delete love.css as you don't need it anymore as you have made binary love.

    Now run your app:

    java Love
    

    Even though you requested love.css, the JavaFX runtime was smart enough to recognize that you have a binary love.bss and use that to apply css styles to your app.

    love