有人可以帮助我理解为什么我无法使用如下所示的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;
}
}