当前位置:   article > 正文

JavaFX学习之TableView

javafx tableview 读取本地文件
TableView表
TableColumn列
构建一个表主要有TableView,TableColumn,ObservableList,Bean。
添加列table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);
ObservableList里面是存放的数据
table.setItems(observableList);添加数据
observableList里面一般是存放的Bean,列与Bean之间建立联系,从而获取值。
列与Bean之间建立联系:
emailCol.setCellValueFactory(new PropertyValueFactory<Person, String>("email"));通过cell值工厂建立与Bean的联系。它这里并不需要知道你是传了什么Bean,它只需要通过“email”反射成getEmail()方法去Bean里面获得值,所以Bean属性定义的名字不需要与它相同,只需要有getEmail()方法。

  1. firstNameCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, String>, ObservableValue<String>>() {
  2. @Overridepublic ObservableValue<String> call(CellDataFeatures<Person, String> arg0) { // return new// SimpleStringProperty(arg0.getValue(),"sd",arg0.getValue().getFirstName());// //bean, bean的名称,值return new SimpleStringProperty(arg0.getValue().getFirstName()); // 这样你可以不建立值与对象的映射关系。 }});

arg0.getValue()等于这里的person。若是你observableList.add(list),则这arg0.getValue()等于list。
SimpleStringProperty(arg0.getValue(),"sd",arg0.getValue().getFirstName());
这里的意思既是arg0.getValue()既是你observableList.add的值,“sd”为bean取得名字,arg0.getValue().getFirstName()既是你该列想要获得的值。如果是list则arg0.getValue().get(j)则为该列的每行赋值了。

cell里面不仅只存放文字,还可以存放其它Node:
  1. firstNameCol.setCellFactory(new Callback<TableColumn<Person, String>, TableCell<Person, String>>() {
  2. @Override public TableCell<Per
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/191696
推荐阅读
相关标签
  

闽ICP备14008679号