当尝试构建包含可更新的应用程序LineChart
或AreaChart
我认识到奇怪的行为时 - 可能是由于应用程序逻辑中的错误?
目标是在单击“生成”按钮时将数据填充到图表中或更新图表。用户必须输入图表的开始时间和结束时间,此外还必须选择间隔小时/天/周(通过使用 )RadioGroup
。
初始图表的创建工作没有任何问题。重新生成图表也可以正常工作,但前提是以前的图表中不存在数据点。如果两个图表(旧图表和更新图表)中都包含具有相同 x 值的数据点,则不再按升序排序。
例子:
执行开始日期:01.09.2013 结束日期:25.09.2013 间隔:周
x 轴上的值:
2013年9月1日 / 2013年9月08日 / 2013年9月15日 / 2013年9月22日
单击“天”RadioButton
重新生成图表会在 x 轴上生成以下值:
2013年9月1日 / 2013年9月8日 / 2013年9月15日 / 2013年9月22日 / 2013年9月2日 / 2013年9月03日 / 2013年9月04日 / ...
(值应为 01.09.2013 / 02.09.2013 / 03.09.2013 / ...)
已在第一个图表中显示且也在第二个图表中显示的所有值均在新图表的开头排序(而不是按升序排列)
这是实现这一技巧的代码(方法代码initializeTimeline
仅用于测试目的(肯定有点可优化;))):
public class ChartDesignController implements Initializable {
@FXML
private AreaChart chartOne;
@FXML
private TextField startDate;
@FXML
private TextField endDate;
@FXML
private RadioButton …
Run Code Online (Sandbox Code Playgroud)