2014-01-13 22 views
0

我有白色的JavaFX场景生成器为我的应用程序做了布局。在我的线条图上,我根据日期选择了一些图表。默认情况下,JavaFX LineChart不支持日期。所以我使用这个图书馆http://myjavafx.blogspot.com/2013/09/javafx-charts-display-date-values-on.html,它工作正常。 Librray还允许setLowerBound和setUpperBound方法。我已经写了代码,它不起作用。JavaFX 2.2如何在FXML生成的LineChart中的DateAxis中设置LowerBound和setUpperBound

我FXML代码(仅适用于线型图):

<LineChart fx:id="lineChart" animated="false"> 
    <xAxis> 
     <DateAxis side="BOTTOM" label="Napoved kalibracije" fx:id="dateAxis"/> 
    </xAxis> 
    <yAxis > 
     <NumberAxis label="Odstopanja v %" lowerBound="0" upperBound="95" tickUnit="10"/> 
    </yAxis> 
</LineChart> 

正如你可以看到我已经设置ID =“dateAxis”这样我就可以从主类是指正如我所提到的场景生成器布局箱。

代码在主类(仅适用于DATAAXIS)wher我得到的ID形式FXML:

Scene scena = primaryStage.getScene(); 
DateAxis dA = (DateAxis) scena.lookup("#dateAxis"); 
dA.setUpperBound(new GregorianCalendar(2016,8,23).getTime()); 
primaryStage.show(); 

System.out.println(dA); 

回报:

DateAxis[id=dateAxis, styleClass=axis] 

什么是指工作的罚款。但是我在xAxis(DateAxis)上的图表并未到2016年8月23日。 如果我们解决了这个问题,我将不胜感激。

+0

任何一个?请! – user3189973

回答

0

有你需要申请两个变化,首先是添加日期轴的构造,两个参数:下限+上限, 例如:

final DateAxis xAxis = new DateAxis(new Date(2013-1900,1,4),new Date(2013-1900,30,14)); 

另一个变化是改变类DateAxis的源代码,查找这部分代码(只搜索“真”,以找到具体的线路)

public DateAxis(Date lowerBound, Date upperBound) { 
     this(); 
     setAutoRanging(true); // change it to "false" 
     setLowerBound(lowerBound); 
     setUpperBound(upperBound); 
    } 

并修改“setAutoRanging”参数设置为“假”

相关问题