1

我正在创建一个使用 JavaFX 2.2 并遇到问题的应用程序。我正在尝试使用 a LineChartBuilder,如下所示:

LineChart<Number, Number> chart = LineChartBuilder.<Number, Number>
        create()
        .XAxis(NumberAxisBuilder.create().label("X axis").build())
        .YAxis(NumberAxisBuilder.create().label("Y axis").build())
        .build();

但是,我收到以下编译器错误:

java: reference to create is ambiguous, both method create() in 
javafx.scene.layout.RegionBuilder and method <X,Y>create() in 
javafx.scene.chart.LineChartBuilder match

java: cannot find symbol
  symbol:   method XAxis(javafx.scene.chart.NumberAxis)
  location: class javafx.scene.layout.RegionBuilder<capture#1 of ?>

我知道第一个错误意味着LineChartBuilder来自RegionBuilder并且都定义了一个create()方法,第二个意味着它假设该方法来自RegionBuilder并且因此找不到该XAxis方法。我什至试过铸造它,

LineChart<Number, Number> chart = 
        ((LineChartBuilder<Number, Number, ?>) 
        LineChartBuilder.<Number, Number>create())....

但我得到相同的编译器错误。

我的问题是,这是一个错误LineChartBuilder还是我用错了?也许甚至有解决方法?

4

1 回答 1

0

您确定您使用的是 JavaFX 2.2 而不是 JDK8 预发行版吗?

JDK8 将在为 JavaFX 2.2 编码的构建器中遇到这些问题:请参阅RT-24272

解决方法是使用new LineChart(xaxis, yaxis). 另请参阅有关此问题的Oracle 论坛主题帖子。

于 2012-12-13T23:59:02.023 回答