Scene listenMenu = new Scene(root, 250, 272);
listenMenu.getStylesheets().add(\"styles.css\");
This always worked for me to load my css file, but after
try this: create a Java
file
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloStyledWorld extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Say 'Hello Styled World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello Styled World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());
primaryStage.setTitle("Hello Styled World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
put the style.class in the same package
as the .java file (or in the corresponding resource folder if you are using one.
verify that the build
includes the correct css file into output folder.
you can
System.out.println(getClass().getResource("style.css").toExternalForm());
to console to see where JavaFX is searching for the css and check if the css is available there.
If you are using scene.getStylesheets().add("com/whatever/stylesheet.css");
You have to link the whole path where it is located including the package after the src
folder, not the src
folder itself though.
If you are using scene.getStylesheets().add(getClass().getResource("stylesheet.css").toExternalForm());
The css file has to be located in the same dir as the java file you are loading it from. You only have to provide the file name.
If you are wanting to make it in a resource
folder in the src
folder then do that. If not I don't know how.