【问题标题】:How do you refresh data in an observable array list?如何刷新可观察数组列表中的数据?
【发布时间】:2015-03-08 19:16:58
【问题描述】:

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

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。无论如何刷新数组列表或其他方式可以做到这一点? 非常感谢

【问题讨论】:

  • 为了通过通知事件发生更新,您需要使用 JavaFX Bean 约定定义数据模型,即使用 setter、getter 和属性访问器。你用 PieChart.Data 做过这个吗?

标签: java arrays list arraylist observablecollection


【解决方案1】:

我没有看到接受整数的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2014-01-22
    • 2018-09-05
    • 1970-01-01
    相关资源
    最近更新 更多