为什么在调用(JavaFX)时未填充ArrayList?

时间:2019-01-23 20:56:11

标签: java user-interface javafx arraylist

有人可以帮助我理解为什么我无法使用如下所示的arraylist填充listview吗?

据我了解,JavaFX将首先运行控制器类的构造方法。然后它将运行初始化。无论哪种方式,似乎我都可以通过System.out.println(在此处插入注释的部分)访问alp。因此它不是null,但是为什么alp.getArr()。size()等于0?

*注意,由于该问题不是显示问题,因此我在下面省略了阶段/场景代码。

我在下面写下了一个有关此问题的快速示例。

public class ListViewController
{
    private ListView<String> list;
    private ArrayListPopulator alp;

    public ListViewController()
    {
        list = new ListView<String>();
        alp = new ArrayListPopulator();
        // alp.getArr().size() = 0
        list.setItems(FXCollections.observableArrayList(alp.getArr()));

    }

    @FXML
    public void initialize()
    {

    }
}

public class ArrayListPopulator
{

    private ArrayList<String> arr;

    public ArrayListPopulator()
    {
        this.arr = new ArrayList<String>();
        this.arr.add("a");
        this.arr.add("b");
        this.arr.add("c");

        //this.arr.size() = 3 at this point
    }

    public ArrayList<String> getArr()
    {
        return this.arr;
    }

}

0 个答案:

没有答案