如何更改 JavaFX char 中 X 和 Y 轴线的颜色?
javafxobject oriented programmingprogramming更新于 2025/4/14 6:22:17
javafx.scene.chart 包提供了创建各种图表的类,即 &minusl 折线图、面积图、条形图、饼图、气泡图、散点图等。
除饼图外,所有其他图表均绘制在 XY 平面上。您可以通过实例化相应的类来创建所需的 XY 图表。
更改轴线的颜色 −
JavaFX CSS 的 fx-border-color 类用于设置节点边框的颜色。
JavaFX CSS 的 -fx-border-width 类用于设置节点边框的宽度。
Node(所有节点的基类)类的 setStyle() 方法接受 CSS 字符串并将指定的样式设置为当前图表。
要更改 x 轴和 y 轴的颜色(更改为 OrangeRed),请使用 setStyle() 方法将以下 CSS 设置为图表对象 −
fx-border-color: OrangeRed transparent transparent; -fx-border-width:3 -fx-border-color: transparent OrangeRed transparent transparent; -fx-borderwidth:3
示例
import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.layout.StackPane; public class ChangingAxisColor extends Application { public void start(Stage stage) { //定义 x 轴 NumberAxis xAxis = new NumberAxis(1960, 2020, 10); xAxis.setLabel("Years"); //定义 y 轴 NumberAxis yAxis = new NumberAxis (0, 350, 50); yAxis.setLabel("No.of schools"); //创建折线图 LineChart<Number,Number> linechart = new LineChart<Number,Number>(xAxis, yAxis); XYChart.Series<Number,Number> series = new XYChart.Series<Number,Number>(); series.setName("一年中的学校数量>); series.getData().add(new XYChart.Data<Number,Number>(1970, 15)); series.getData().add(new XYChart.Data<Number,Number>(1980, 30)); series.getData().add(new XYChart.Data<Number,Number>(1990, 60)); series.getData().add(new XYChart.Data<Number,Number>(2000, 120)); series.getData().add(new XYChart.Data<Number,Number>(2013, 240)); series.getData().add(new XYChart.Data<Number,Number>(2014, 300)); //将数据设置为折线图 linechart.getData().add(series); //更改 x 轴和 y 轴的颜色 linechart.getXAxis().setStyle("-fx-border-color: OrangeRed transparent transparent; -fx-border-width:3"); linechart.getYAxis().setStyle("-fx-border-color: transparent OrangeRed transparent transparent; -fx-border-width:3"); //创建 Group 对象 StackPane root = new StackPane(linechart); //设置场景对象 Scene scene = new Scene(root, 595, 300); stage.setTitle("Line Chart"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }