JavaFX listview init()方法

时间:2019-02-20 11:41:44

标签: java listview javafx

我正在使用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()来加载列表视图?

0 个答案:

没有答案