2012-12-13 74 views
1

我正在創建一個使用JavaFX 2.2並遇到問題的應用程序。我試圖用一個LineChartBuilder,像這樣:無法獲得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 ?> 

我知道的第一個錯誤意味着LineChartBuilderRegionBuilder下降,並且都定義了一個create()方法,第二種方法假定該方法來自RegionBuilder和t因此找不到XAxis方法。我甚至嘗試鑄造它,

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

但我得到相同的編譯器錯誤。

我的問題是,這是在LineChartBuilder錯誤還是我使用它錯了?也許還有一種解決方法?

+0

我不知道這是否只應該由FXMLLoader使用。 –

回答

0

您確定您正在運行JavaFX 2.2而不是JDK8預發行版嗎?

JDK8將會因JavaFX 2.2的編譯器遇到這些問題:請參閱RT-24272

解決方法是使用new LineChart(xaxis, yaxis)。請參閱有關此問題的Oracle forum thread帖子。