如何在 JavaFX 中制作自定义 LineChart 控件?

伊戈尔卢迪

我的 JavaFX 项目中有一个自定义 LineChartWithMarkers 控件。我在 Java(FX) 编程中暂停了两年,发现 LineChartBuilder 在 Java 10 中不再存在。我找到了一些文档说它在版本 8 中已弃用,但没有找到如何替换它.

如何修复我的代码以使用 Java 10?

这就是我所拥有的:

public class LineChartWithMarkersBuilder extends LineChartBuilder {
    private Axis<Number> xAxis ;
    private Axis<Number> yAxis ;        
    private ObservableList<Series<Number,Number>> data ;

    public static LineChartWithMarkersBuilder create() {
        return new LineChartWithMarkersBuilder();
    }

    public LineChartWithMarkersBuilder xAxis(Axis<Number> xAxis) {
        this.xAxis = xAxis ;
        return this ;
    }

    public LineChartWithMarkersBuilder yAxis(Axis<Number> yAxis) {
        this.yAxis = yAxis ;
        return this ;
    }


    public LineChartWithMarkers<Number, Number> build() {
        xAxis = new NumberAxis();
        yAxis = new NumberAxis();
        return new LineChartWithMarkers<Number, Number>( xAxis, yAxis);

    }
}

和自定义 LineChartWithMarkers:

public class LineChartWithMarkers<X extends Number, Y extends Number> extends LineChart<X, Y>  {

    private ObservableList<Data<Number, Number>> verticalMarkers;


    public LineChartWithMarkers(Axis<X> xAxis, Axis<Y> yAxis) {
        super(xAxis, yAxis);
        this.setCreateSymbols(false);
        verticalMarkers = FXCollections.observableArrayList(data -> new Observable[] {data.XValueProperty()});
        verticalMarkers.addListener((InvalidationListener)observable -> layoutPlotChildren());
    }
    (...)
}

我从 .fxml 中使用的,如下所示:

...
                <LineChartWithMarkers fx:id="chartFit" createSymbols="false" layoutX="14.0" layoutY="54.0" prefHeight="499.0" prefWidth="987.0" AnchorPane.bottomAnchor="162.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="54.0">
                <xAxis>
                    <NumberAxis side="BOTTOM" />
                </xAxis>
                <yAxis>
                    <NumberAxis side="LEFT" />
                </yAxis>
            </LineChartWithMarkers>
...
詹姆斯_D

所有 JavaFX 构建器类在 Java 8 中都已弃用,并在 Java 9 中删除。只需完全删除构建器类。要允许FXMLLoadertop 在没有无参数构造函数的情况下实例化一个类,请@NamedArg在构造函数参数上使用注释:

public class LineChartWithMarkers<X extends Number, Y extends Number> extends LineChart<X, Y>  {

    private ObservableList<Data<Number, Number>> verticalMarkers;


    public LineChartWithMarkers(
            @NamedArg("xAxis") Axis<X> xAxis, 
            @NamedArg("yAxis") Axis<Y> yAxis) {
        super(xAxis, yAxis);
        this.setCreateSymbols(false);
        verticalMarkers = FXCollections.observableArrayList(data -> new Observable[] {data.XValueProperty()});
        verticalMarkers.addListener((InvalidationListener)observable -> layoutPlotChildren());
    }
    (...)
}

@NamedArg注释的完整讨论可以在 javaFX 8 中@NamedArg 注释的目的是什么?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaFX中创建动画的LineChart?

来自分类Dev

如何在 JavaFX 中的 ListView 中设置自定义控件的样式

来自分类Dev

如何在java中动态创建自定义xml元素(或自定义javafx场景控件)

来自分类Dev

如何在JavaFX自定义控件中摆脱这些CSS警告?

来自分类Dev

如何在 JavaFx 中获取 LineChart 的刻度标签的宽度?

来自分类Dev

如何平移 JavaFX LineChart

来自分类Dev

JavaFX-如何创建简单的自定义绘制控件?

来自分类Dev

如何在JavaFX LineChart上添加形状

来自分类Dev

JavaFX LineChart如何在符号上画线

来自分类Dev

在JavaFx中创建自定义控件的问题

来自分类Dev

createDefaultSkin()在JavaFX自定义控件中返回null错误

来自分类Dev

如何制作自定义UITableView刷新控件?

来自分类Dev

如何在DateTimePicker控件中自定义日历?

来自分类Dev

如何在 Leaflet 中创建自定义设置控件

来自分类Dev

如何在表单中动态添加自定义控件

来自分类Dev

如何在自定义控件中添加所需的星号?

来自分类Dev

如何以编程方式将类或伪类添加到JavaFX中的自定义控件?

来自分类Dev

如何以编程方式将类或伪类添加到JavaFX中的自定义控件?

来自分类Dev

如何在javafx 8中多次使用控件?

来自分类Dev

如何在javafx 8中多次使用控件?

来自分类Dev

如何在JavaFX的TableView中自定义setCellValueFactory的功能

来自分类Dev

如何在 JavaFX 中创建自定义 ProgressIndicator?

来自分类Dev

如何居中JavaFX控件

来自分类Dev

如何在设计时在delphi中的自定义控件中选择子控件

来自分类Dev

如何在Angular的自定义控件组件中触摸内部控件?

来自分类Dev

javaFX自定义控件的不良行为

来自分类Dev

javaFX自定义控件的不良行为

来自分类Dev

WPF:如何使自定义控件中的文本显示?

来自分类Dev

如何在自定义控件中为内部DataGrid定义列

Related 相关文章

  1. 1

    如何在JavaFX中创建动画的LineChart?

  2. 2

    如何在 JavaFX 中的 ListView 中设置自定义控件的样式

  3. 3

    如何在java中动态创建自定义xml元素(或自定义javafx场景控件)

  4. 4

    如何在JavaFX自定义控件中摆脱这些CSS警告?

  5. 5

    如何在 JavaFx 中获取 LineChart 的刻度标签的宽度?

  6. 6

    如何平移 JavaFX LineChart

  7. 7

    JavaFX-如何创建简单的自定义绘制控件?

  8. 8

    如何在JavaFX LineChart上添加形状

  9. 9

    JavaFX LineChart如何在符号上画线

  10. 10

    在JavaFx中创建自定义控件的问题

  11. 11

    createDefaultSkin()在JavaFX自定义控件中返回null错误

  12. 12

    如何制作自定义UITableView刷新控件?

  13. 13

    如何在DateTimePicker控件中自定义日历?

  14. 14

    如何在 Leaflet 中创建自定义设置控件

  15. 15

    如何在表单中动态添加自定义控件

  16. 16

    如何在自定义控件中添加所需的星号?

  17. 17

    如何以编程方式将类或伪类添加到JavaFX中的自定义控件?

  18. 18

    如何以编程方式将类或伪类添加到JavaFX中的自定义控件?

  19. 19

    如何在javafx 8中多次使用控件?

  20. 20

    如何在javafx 8中多次使用控件?

  21. 21

    如何在JavaFX的TableView中自定义setCellValueFactory的功能

  22. 22

    如何在 JavaFX 中创建自定义 ProgressIndicator?

  23. 23

    如何居中JavaFX控件

  24. 24

    如何在设计时在delphi中的自定义控件中选择子控件

  25. 25

    如何在Angular的自定义控件组件中触摸内部控件?

  26. 26

    javaFX自定义控件的不良行为

  27. 27

    javaFX自定义控件的不良行为

  28. 28

    WPF:如何使自定义控件中的文本显示?

  29. 29

    如何在自定义控件中为内部DataGrid定义列

热门标签

归档