新建一个java文件为人的信息PersonIfmController。
package exe5;
import javafx.beans.property.SimpleStringProperty;
class PersonInformation {
private final SimpleStringProperty name;
private final SimpleStringProperty phoneNumber;
private final SimpleStringProperty email;
public PersonInformation(String name, String phoneNumber, String email){
this.name = new SimpleStringProperty(name);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
this.email = new SimpleStringProperty(email);
}
public String getName() {
return name.get();
}
public SimpleStringProperty nameProperty() {
return name;
}
public void setName(String name) {
this.name.set(name);
}
public String getPhoneNumber() {
return phoneNumber.get();
}
public SimpleStringProperty phoneNumberProperty() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber.set(phoneNumber);
}
public String getEmail() {
return email.get();
}
public SimpleStringProperty emailProperty() {
return email;
}
public void setEmail(String email) {
this.email.set(email);
}
}
在controller中写
@FXML
private TableView<PersonInformation> tableView;
@FXML
private void initialize(){
final ObservableList<PersonInformation> data =
FXCollections.observableArrayList(
new PersonInformation("杨昀翰","1","1"),
new PersonInformation("夏滔","1","1"),
new PersonInformation("张炎","1","1"),
new PersonInformation("4","1","1")
);
tableColName.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
// tableColName.setCellValueFactory(new PropertyValueFactory<PersonInformation, String>("name"));
tableView.setItems(data);
}
设置tableView和tableColumn的fx:id
即可
讲讲关于我踩的坑
-
getOnEdistart方法
点击这个,然后点OnEditStart,然后
文档中出现这个方法,我以为是会自动设置值,把内容写里面(有点蠢= =)
关于这两句的用法
tableColName.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
tableColName.setCellValueFactory(new PropertyValueFactory<PersonInformation, String>("name"));
具体为什么第一个可以第二个不可以,我也不清楚。
仅供参考,欢迎指正,看到会及时回复