2017-01-15 1 views
0

私はJavaFXにはかなり新しく、CSSFプロジェクト/シーン全体にCSSファイルを割り当てる方法があるのだろうかと思っていました。現在、私はCSSでスタイルを設定したいすべての要素にスタイルシートを適用する必要があります。私はIntelliJとScene Builder 2.0で作業しています。私はメインクラスでスタイルシートを追加しようとしましたが、以下のようにメソッドを開始しましたが、目的の効果がないようです。JavaFXプロジェクト用にCSSを使用する方法

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に位置して上記の例では。

関連する問題