2016-05-28 5 views
4

Как установить стиль CSS для класса, который расширяет объект JavaFX?JavaFX css style style

public class DiagramPane extends ScrollPane implements IDiagramEditor { 
    // .... Methods go here 
} 

Я попытался следующие пути в основной метод:

public class DiagramPane extends ScrollPane implements IDiagramEditor { 
    DiagramPane() { 
     this.setStyle("-fx-background-color: #f8ecc2;-fx-font-size: 8pt;"); 
     setStyle("-fx-background-color: #f8ecc2;-fx-font-size: 8pt;"); 
    } 
} 

ответ

5

Добавить эти строки в файл CSS

.diagram-pane { 
    -fx-background-color: #f8ecc2; 
    -fx-font-size: 8pt; 
} 

и установить DiagramPane экземпляр использовать diagram-pane класс стиля

diagramPane.getStyleClass().clear(); 
diagramPane.getStyleClass().add("diagram-pane"); 
+0

Спасибо! Это работает для меня – user5562650

2

Одна из возможностей - это то, что вы упоминали использовать setStyleметод узла.

public class MyScrollPane extends ScrollPane { 

    public MyScrollPane(){ 
     setStyle("-fx-background-color: blue;"); 
    } 

} 

Другая возможность использовать CSS стилей

Это один предложенный подход, так как он полностью разделяет CSS стили из кода Java.

Примечание: MyScrollPane.css размещен в той же папке, где и сам класс.

MyScrollPane.java

public class MyScrollPane extends ScrollPane { 

    public MyScrollPane(){ 
     getStylesheets().add(getClass().getResource("MyScrollPane.css").toExternalForm()); 
    } 

} 

В этой таблице стилей вы можете перезаписать существующие классы CSS на ScrollPane как:

MyScrollPane.css

.scroll-pane { 
    -fx-background-color: red, white; 
    -fx-background-insets: 0, 2; 
    -fx-padding: 2.0; 
} 

Чтобы проверить, какие классы существуют для панели прокрутки в JavaFX, вы можете прочитать caspian.css. Базовый класс для ScrollPane - .scroll-pane.

Также вы можете определить новые классы CSS, и добавить их к вашему ScrollPane:

public class MyScrollPane extends ScrollPane { 

    public MyScrollPane(){ 
     getStylesheets().add(getClass().getResource("MyScrollPane.css").toExternalForm()); 
     getStyleClass().add("red-border"); 
    } 

} 

И в CSS

.red-border { 
    -fx-background-color: red, white; 
    -fx-background-insets: 0, 2; 
    -fx-padding: 2.0; 
} 

Чтобы узнать о CSS стиль в JavaFX: http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm

Также вы может проверить Справочное руководство по CSS для JavaFX: https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html