gpt4 book ai didi

javafx-2 - JavaFX TableView 分页器

转载 作者:行者123 更新时间:2023-12-04 00:22:05 31 4
gpt4 key购买 nike

如何在 TableView 分页器中使用.?.对于这个例子......

public class SampleController implements Initializable {

@FXML private TableView<Student> table;
@FXML private TableColumn<Student, Integer> id;
@FXML private TableColumn<Student, String> name;
@FXML private ObservableList<Student> list = FXCollections.observableArrayList();
// @FXML private Pagination pagination;
//
private StudentSQL ssql = new StudentSQL();
private Stage stage = new Stage();
private String row;

@Override
public void initialize(URL url, ResourceBundle rb) {
id.setCellValueFactory(new PropertyValueFactory<Student, Integer>("id"));
name.setCellValueFactory(new PropertyValueFactory<Student, String>("name"));
list = ssql.students();
table.setItems(list);
}
}

最佳答案

您必须使用 Pagination控制和实现一个页面工厂。为每个应该显示的页面调用工厂,您可以使用其参数 pageIndex 为 TableView 提供项目的子列表:

TableView table = ...

private Node createPage(int pageIndex) {

int fromIndex = pageIndex * rowsPerPage;
int toIndex = Math.min(fromIndex + rowsPerPage, data.size());
table.setItems(FXCollections.observableArrayList(data.subList(fromIndex, toIndex)));

return new BorderPane(table);
}


@Override
public void start(final Stage stage) throws Exception {

Pagination pagination = new Pagination((data.size() / rowsPerPage + 1), 0);
pagination.setPageFactory(this::createPage);
...
}

可以在此处找到完整的可运行示例:
https://gist.github.com/timbuethe/7becdc4556225e7c5b7b

关于javafx-2 - JavaFX TableView 分页器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349185/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com