我正在使用JavaFx尝试加载Book标题的listView。我的主要应用程序在两种视图之间切换,即书名列表(即时通讯正在处理)和每本书的详细视图。我试图这样实现listView:
public class BookListController implements Initializable, MyController{
@FXML
private ListView<String> list;
private List<Book> books;
public void populateList() {
//list.getItems().addAll("Book 1", "Book 2", "Book 3", "Book 4");
books = BookTableGateway.getInstance().getBooks();
for(Book b : books) {
list.getItems().add(b.getTitle());
}
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
populateList();
}
我使用list.getItems().addAll("Book 1", "Book 2", "Book 3", "Book 4");
来测试我的代码,这很好用。我的问题来自将其更改为从数据库获取数据(我可以成功获取数据)。列表视图将在我第一次打开时成功加载。但是,如果我尝试在视图之间切换,则第一次后标题将不再加载到列表中。
既然我调用此视图的调用是controller = new BookListController();
,那么是否不应该每次都调用init()来加载列表视图?