如何刷新可观察数组列表中的数据?

时间:2015-01-10 15:45:11

标签: java arrays list arraylist observablecollection

我在公共类中创建了多个可观察的数组列表。

ObservableList<PieChart.Data> q1ChartData =
                    FXCollections.observableArrayList(
                            new PieChart.Data("Strongly Agree", s1sa),
                            new PieChart.Data("Agree", s1a),
                            new PieChart.Data("Neither", s1naod),
                            new PieChart.Data("Disagree", s1d),
                            new PieChart.Data("Strongly Disagree", s1sd));

因此s1sa,s1a,s1naod等是从用户输入不断变化的整数。然后我想使用这些数据来创建一个饼图,但是当我按下按钮时使用事件处理程序执行此操作时数据仍为0.无论如何刷新数组列表或者我可以使用不同的方式? 非常感谢你

1 个答案:

答案 0 :(得分:0)

我没有看到接受整数的PieChart.Data构造函数......

构造函数应该是:

PieChart.Data(java.lang.String name, double value)

如果我理解你想要什么,我认为你所描述的是一种约束力。在这种情况下,您需要稍微更改变量的类型。如果你仍然希望它们代表整数,那么它应该类似于以下内容。

    IntegerProperty s1sa = new SimpleIntegerProperty(1);

    PieChart.Data data = new PieChart.Data("Strongly Agree", s1sa.doubleValue());

    data.pieValueProperty().bind(s1sa);

以这种方式绑定,对s1sa的任何更改都将自动更新您的数据。

有关绑定的更多信息:http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm