JavaFX - 以编程方式编辑或解析FX-CSS文件

时间:2015-11-18 09:21:25

标签: java css javafx-8

我使用的是JavaFX 8u60。我想让我的用户有机会在我的程序中编辑一个窗格的CSS文件,而不使用外部编辑器。

例如,用户单击Label,然后会显示一个用于选择颜色的对话框。在用户选择颜色后,颜色实际上写在CSS文件中,在相应的行中......

JavaFX有CSS解析器吗?

我无法向您展示任何Java代码,因为我不确定是否可以这样做。

 .table-view .column-header .label{
    -fx-font: 18 GatwickSans;
     -fx-text-fill: red; //<--- user shall be able to edit this line from my program
     -fx-alignment: TOP_LEFT;      
 }

编辑:澄清一下,我希望能够从Java编辑FX-CSS文件。

2 个答案:

答案 0 :(得分:0)

您可以使用颜色选择器,试试这个例子

Hbox layout =new HBox(10);
ColorPicker colorPicker = new ColorPicker();
colorPicker.setValue(Color.RED);//Red is the default shown at first

Label label =new Label("Your Text");
layout.getChildren().addAll(label,colorPicker);

//Then
colorPicker.setOnAction(event->{
            label.setFill(colorPicker.getValue());
        });

也适用于css

colorPicker.setOnAction(event->{
            label.setStyle("-fx-text-fill: "+colorPicker.getValue()+";");
        });

答案 1 :(得分:0)

我使用过CSSParser:

http://sourceforge.net/projects/cssparser/

它足够通用,它的工作方式有点像DOM XML解析器。它读取CSS文件并将其映射到内存中,允许您读取单个选择器,属性和值,并对其进行编辑。检查有关Sourceforge的讨论,以获得一些示例,因为它缺少文档。