我最近问了一个关于在JavaFX LineChart上添加两条垂直线的问题,现在我遇到了将一些样式内容应用到图中的问题。我认为这是一个新问题,所以我开了一个新帖子。
Add Two Vertical Lines to LineChart
我的问题:如何更改系列的不同颜色?我也想将背景改为白色。
以下是我创建的图表(它扩展了LineChart):
LineChartWithMarkers<Number, Number> chart = new LineChartWithMarkers<Number, Number>(xAxis, yAxis, dataset);
xAxis.setLabel("time(s)");
yAxis.setLabel("deg/s");
chart.setStyle(".chart-series-line { -fx-stroke-width: 2px; -fx-effect: null; ");
chart.setStyle(".default-color0.chart-series-line { -fx-stroke: blue; }");
chart.setStyle(".default-color1.chart-series-line { -fx-stroke: red; }");
chart.setStyle(".default-color0.chart-line-symbol { -fx-stroke: blue, blue; }");
chart.setStyle(".default-color1.chart-line-symbol { -fx-stroke: red, red; }");
chart.setStyle(".chart-legend { -fx-background-color: transparent; }");
由于某些原因,这些代码不适用于图表。所以我尝试使用CSS文件。
以下是CSS文件:
@CHARSET "ISO-8859-1";
.chart-series-line {
-fx-stroke-width: 1px;
-fx-effect: null;}
.default-color0.chart-series-line { -fx-stroke: blue; }
.default-color1.chart-series-line { -fx-stroke: red; }
.default-color0.chart-line-symbol { -fx-background-color: blue, blue; }
.default-color1.chart-line-symbol { -fx-background-color: red, red; }
.chart-legend {
-fx-background-color: transparent;
-fx-font-size: 0.75em;}
.chart-legend-item-symbol{
-fx-background-radius: 2;}
.chart-plot-background {
-fx-background-color: transparent;}
我尝试关注Using JavaFX Charts: Styling Charts with CSS,但我在控制台中收到错误“警告:CSS错误解析文件:...:[1,9]预期LBRACE”
我今天刚从JDK 7切换到JDK 8,所以我不确定它是否与此有关...
感谢您的帮助!
答案 0 :(得分:12)
@charset不支持JavaFX CSS规则,{{3}}只是完整W3C CSS的子集。尝试删除它。
@ Rules
从JavaFX 8u20开始,CSS @import也是部分的 支持的。仅支持无条件导入。换句话说, 不支持media-type限定符。此外,JavaFX CSS解析器是 不符合@import可能出现在a中的位置 样式表(参见At-rules)。提醒用户,这将得到修复 在将来的版本中。坚持遵守W3C标准 宜。