JavaFX css 类风格

Posted

技术标签:

【中文标题】JavaFX css 类风格【英文标题】:JavaFX css class style 【发布时间】:2016-09-26 18:17:01 【问题描述】:

如何为扩展 JavaFX 对象的类设置 CSS 样式?

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

我在main方法中尝试了以下几种方式:

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;");
    

【问题讨论】:

【参考方案1】:

将这些行添加到您的 css 文件中

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

并将DiagramPane 实例设置为使用diagram-pane 样式类

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

【讨论】:

【参考方案2】:

其中一种可能性是您提到的使用setStyle Node 方法。

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());
    


在此样式表中,您可以覆盖 ScrollPane 的现有 CSS 类,例如:

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;

要了解 JavaFX 中的 CSS 样式:http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm

您还可以查看 JavaFX 的 CSS 参考指南:https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cs-s-ref.html

【讨论】:

以上是关于JavaFX css 类风格的主要内容,如果未能解决你的问题,请参考以下文章

编写CSS代码的个人风格

是否有推荐的HTML / CSS / JavaScript编码风格指南? [关闭]

bootstrap 之css样式

JavaFX:隐藏SplitPane的滑块/分隔线

如何用CSS选择器查询和风格化Web元素

css Bonita Css风格