📜  JavaFX 柱状图(1)

📅  最后修改于: 2023-12-03 15:31:36.264000             🧑  作者: Mango

JavaFX 柱状图

JavaFX 是一个用于构建富应用程序的图形框架,它提供了用于创建图形用户界面和媒体处理等功能的集成 API。其中,用于展示数据的图表是开发者经常使用的功能之一,而柱状图是其中一个重要的类型。在本文中,我们将介绍如何使用 JavaFX 构建柱状图。

准备工作

在开始之前,我们要确保安装了 Java SE Development Kit 和 JavaFX SDK。另外,为了能够正确显示中文,需要设置 JavaFX 应用程序的默认字符集为 UTF-8,可以在程序入口处添加以下代码:

System.setProperty("file.encoding", "UTF-8");
构建柱状图

首先,我们需要创建一个 AnchorPane 作为容器来放置图表。然后,构建一个 CategoryAxis 作为横坐标,在其中添加多个类别(比如月份)。接下来,构建一个 NumberAxis 作为纵坐标,设置取值范围,并设置标签名称。最后,构建一个 BarChart,把横坐标和纵坐标对象作为参数传入,然后将需要展示的数据添加到 BarChart 中即可。最终代码如下:

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        AnchorPane root = new AnchorPane();

        CategoryAxis xAxis = new CategoryAxis();
        xAxis.setCategories(FXCollections.observableArrayList(
                "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
        ));

        NumberAxis yAxis = new NumberAxis();
        yAxis.setLabel("销售额(万元)");
        yAxis.setTickUnit(10);
        yAxis.setAutoRanging(false);
        yAxis.setLowerBound(0);
        yAxis.setUpperBound(100);

        XYChart.Series<String, Number> series = new XYChart.Series<>();
        series.setName("2019 年");

        series.getData().add(new XYChart.Data<>("一月", 10));
        series.getData().add(new XYChart.Data<>("二月", 20));
        series.getData().add(new XYChart.Data<>("三月", 30));
        series.getData().add(new XYChart.Data<>("四月", 40));
        series.getData().add(new XYChart.Data<>("五月", 50));
        series.getData().add(new XYChart.Data<>("六月", 60));
        series.getData().add(new XYChart.Data<>("七月", 70));
        series.getData().add(new XYChart.Data<>("八月", 80));
        series.getData().add(new XYChart.Data<>("九月", 90));
        series.getData().add(new XYChart.Data<>("十月", 80));
        series.getData().add(new XYChart.Data<>("十一月", 70));
        series.getData().add(new XYChart.Data<>("十二月", 60));

        BarChart<String, Number> barChart = new BarChart<>(xAxis, yAxis);
        barChart.setTitle("XX 公司 2019 年销售情况");
        barChart.getData().add(series);

        root.getChildren().add(barChart);

        Scene scene = new Scene(root, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        System.setProperty("file.encoding", "UTF-8");
        Application.launch(args);
    }
}
示例效果

最终展示效果如下所示:

柱状图

总结

JavaFX 提供了非常方便的 API 来构建各种类型的图表,其中柱状图是非常常用的一种。通过简单的代码即可构建出一个优秀的柱状图来展示数据,帮助企业更好的了解业务数据情况,从而作出更加明智的决策。