2017-01-15 1 views
0

저는 JavaFX를 처음 접했고 전체 JavaFX 프로젝트/장면에 CSS 파일을 할당하는 방법이 있는지 궁금합니다. 현재 스타일 시트를 CSS로 스타일 화하고 싶은 모든 요소에 스타일 시트를 적용해야합니다. 나는 IntelliJ와 Scene Builder 2.0을 가지고 일하고있다. 아래의 그림처럼 Main 클래스에서 스타일 시트를 추가하려고 시도했지만 원하는 효과가없는 것 같습니다.CSS를 JavaFX 프로젝트 용으로 사용하는 방법

public class Main extends Application { 
@Override 
public void start(Stage primaryStage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("JavaFXTest.fxml")); 
    primaryStage.setTitle("JavaFX Test"); 
    primaryStage.setScene(new Scene(root, 300, 275)); 
    root.getStylesheets().add("@../styling/styles.css"); 
    primaryStage.show(); 
} 

public static void main(String[] args) { 
    launch(args); 
} 

답변

2

나는 그것이 CSS 파일의 경로에 문제가 있다는 것을 깨달았다. 나는 그것을 다음과 같이 변경했다 :

root.getStylesheets().add("styling/styles.css"); 

그리고 달성 된 결과. 이렇게하면 스타일 시트를 UI의 모든 요소에 수동으로 추가 할 필요가 없으며 전체 장면에서 작동합니다. 스타일을 추가하려면 일반적인 CSS 규칙에 따라 클래스/ID를 선언하십시오.

0

당신은 현장에 스타일 시트를 추가 할 수 있습니다

public void start(Stage primaryStage) { 
    Button btn = new Button(); 
    btn.setText("Say 'Hello World'"); 
    btn.setOnAction(event -> System.out.println("Hello World!")); 

    StackPane root = new StackPane(); 
    root.getChildren().add(btn); 

    Scene scene = new Scene(root, 300, 250); 
    scene.getStylesheets().add("/styling/styles.css"); 

    primaryStage.setTitle("Hello World!"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

을 스타일 시트는 소스 루트에 /styling/styles.css 상대에있는 위의 예에서.

관련 문제