2013-12-16 118 views
0

所以我有我的lineChart我的y軸是NumberAxis,我的x軸是DateAxis。我使用lib http://myjavafx.blogspot.com/2013/09/javafx-charts-display-date-values-on.html的DateAxis。感謝Christian Schudt。我在一個線條圖中繪製了一個系列中的三條線。JavaFX 2.2樣式圖

我看到幾個類似的問題和解決方案: JavaFx 2.x: XYChart properties JavaFx 2.x: XYChart properties http://docs.oracle.com/javafx/2/charts/css-styles.htm

,但它不會爲我工作。

所以我添加代碼:

lineChart.setStyle(".default-color0.chart-series-line { -fx-stroke: #f0e68c, gray; }"); 
lineChart.setStyle(".default-color1.chart-series-line { -fx-stroke: #00ff00, green; }"); 
lineChart.setStyle(".default-color2.chart-series-line { -fx-stroke: #ff0000, red; }"); 

請,誰能幫助我?

+0

沒人或什麼? – wanttobeprofessional

回答

1

您需要使用外部樣式表完成此操作。用你傳遞給setStyle(...)方法的三個字符串創建一個css文件,然後在場景中調用

scene.getStylesheets().add(getClass().getResource("myFile.css").toExternalForm()); 

CSS有兩個部分:規則和選擇器。該規則定義樣式(例如,「-fx-stroke:#f0e68c,gray;」);選擇器定義樣式將應用於哪個節點(例如:「.default-color0.chart-series-line」:具有「default-color0」類和「chart-series-line」類的所有節點)。

將字符串傳遞給節點的setStyle(...)方法時,只傳入規則,並且該規則將應用於該節點。在你的情況下,這是行不通的。您想要將樣式分配給線條,而不是圖表本身。

要使用選擇器,您需要使用外部樣式表。使用lineChart.lookup(...)可以實現相同的結果,但這不是非常健壯;外部樣式表是遠遠優選的。