Javafx 2 以编程方式内联控制线条图中的符号等

Javafx 2 以编程方式内联控制线条图中的符号等,javafx-2,Javafx 2,我有一个JavaFX应用程序,我希望用户能够控制线条图中的符号、线型等。我不想创建多个样式表,而是想将此功能构建到Java代码中。感谢Jewelsea之前发布的优秀示例,我可以动态更改线条样式,这太棒了!但我无法更改默认的符号样式 我不清楚在对node.setStyle的调用中有多少.css语句可以逐字内联使用。也就是说,'-fx-*'命令可以从Java代码中工作。但是.css文件中的符号是用不同的语法定义的,仅仅将css行插入Java代码中是行不通的 下面是我的代码中的一个示例: String

我有一个JavaFX应用程序,我希望用户能够控制线条图中的符号、线型等。我不想创建多个样式表,而是想将此功能构建到Java代码中。感谢Jewelsea之前发布的优秀示例,我可以动态更改线条样式,这太棒了!但我无法更改默认的符号样式

我不清楚在对node.setStyle的调用中有多少.css语句可以逐字内联使用。也就是说,'-fx-*'命令可以从Java代码中工作。但是.css文件中的符号是用不同的语法定义的,仅仅将css行插入Java代码中是行不通的

下面是我的代码中的一个示例:

StringBuilder styleString = new StringBuilder();    
            // do some stylin'
    switch (getLineStyle.getValue().toString())  {
        case "Line and points":
            styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; ");
            styleString.append(
                    ".chart-symbol {-fx-background-color: blue; -fx-background-radius: 3px;}");
            engChart.setCreateSymbols(true);
            break;

        case "Line only":
             styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; ");
             engChart.setCreateSymbols(false);
            break;
在“线和点”的情况下,我可以使用此代码控制颜色和宽度,但控制符号的尝试失败得很惨。我从这里获取了语法:

如果有更好的内联控件参考,我希望知道它是什么


有人能告诉我如何正确操作符号吗?谢谢

不能在样式字符串中附加样式类定义。 只能在css文件中定义样式类。 因此,创建并替换现有符号样式或创建自己的符号样式

包含以下定义:

.chart-line-symbol {
    -fx-background-color: #f9d900, white;
    -fx-background-insets: 0, 2;
    -fx-background-radius: 5px;
    -fx-padding: 5px;
}
.default-color0.chart-line-symbol { -fx-background-color: #f9d900, white; }
.default-color1.chart-line-symbol { -fx-background-color: #a9e200, white; }
.default-color2.chart-line-symbol { -fx-background-color: #22bad9, white; }
.default-color3.chart-line-symbol { -fx-background-color: #0181e2, white; }
.default-color4.chart-line-symbol { -fx-background-color: #2f357f, white; }
.default-color5.chart-line-symbol { -fx-background-color: #860061, white; }
.default-color6.chart-line-symbol { -fx-background-color: #c62b00, white; }
.default-color7.chart-line-symbol { -fx-background-color: #ff5700, white; }
因此,要么提供自己的.chart行符号定义,要么向图表中添加新的样式类,例如
chart.getStyleClass().add(“自定义图表”)
,然后在css文件中定义自定义图表符号

.custom-chart .chart-line-symbol {
    -fx-background-color: #f9d900, firebrick;
    -fx-background-radius: 0px;
}
有很多方法可以实现图表符号的自定义样式,但最好只使用css,除非它真的不能用于您的用例