kordamp / bootstrapfx

BootstrapFX: Bootstrap for JavaFX
MIT License
959 stars 142 forks source link

Accessing this library from Gluon's SceneBuilder? #14

Open seinecle opened 4 years ago

seinecle commented 4 years ago

I'd like to use this bootstrap css framework, but accessed through the Gluon SceneBuilder. I see there is an "add css stylesheet" in the menu of the SceneBuilder but I am not sure how this can be combined with the add-on mentioned above? Also asked on SO: https://stackoverflow.com/questions/61170165/add-a-bootstrap-css-stylesheet-to-gluon-scenebuilder-for-javafx

SessionESP commented 3 years ago

I spent several hours investigating this question and finally I have to reference as usual stylesheet from project resources: scene_builder

"bootstrapfx.css" is a copy from the Maven .jar

I've tried to use Gluon Scene Builder, whitch it is said to have Maven suport to import dependencies, but it is too much unstable software so I returned to classic Oracle JavaFX Scene Builder.

juananpe commented 1 year ago

I'm aware that this question was asked more than a year ago, but I'd like to share how I solved it... and honestly, because in the process I stumbled upon a related problem and perhaps someone can enlighten me with a solution, see below :)

To use BootstrapFX in SB and preview the results, I can do the following (as seen in @aalmiray answer here: https://stackoverflow.com/a/64404062/243532):

image

Add the org.kordamp.bootstrapfx:bootstrap-core:0.4.0 JAR from Maven (using the "Manually add Library from repository")

image

Set the bootstrapfx.css stylesheet to the root node of the scene. For that, I assumed the following:

image

I needed to click on "Switch to classpath relative path" and add the full path to the file:

image

Now I can see all the available CSS styles and apply them from SB to any of the scene's nodes:

image

So far so good. However, when I open the FXML file in IntelliJ (where I have the BootstrapFX library defined as a dependency in Maven) I get this error:

image

Cannot resolve directory 'org': (I'm assuming that stylesheets="@/org/kordamp/bootstrapfx/bootstrapfx.css" should look into the proper JAR dependency in my Maven external libraries and get the CSS file from there... in fact, isn't it what was really happening in SB?)

And of course, when I run the application from IntelliJ, it yields this error:

Caused by: javafx.fxml.LoadException: Invalid resource: /org/kordamp/bootstrapfx/bootstrapfx.css not found on the classpath

Is there any way to specify in the stylesheets attribute the path to a CSS file located inside a JAR file so we can run the JavaFX application without errors both in SB and from IntelliJ/Maven?

PD: I've also posted this last question in StackOverflow: https://stackoverflow.com/questions/75195364/cant-use-a-css-located-inside-a-jar-file-in-an-javafx-fxml-scene