我使用的是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文件。
答案 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的讨论,以获得一些示例,因为它缺少文档。