JavaFX在TableView中使用多个类?

JavaFX在TableView中使用多个类?,java,hibernate,javafx,tableview,tablecolumn,Java,Hibernate,Javafx,Tableview,Tablecolumn,我有一个问题:我需要创建一个TableView,在其中显示一年内因不同疾病导致的所有死亡人数。问题是,在每一行中,我需要指定存储在Deathers类中的省字段。当我尝试构建TableView的不同列时,我使用每个死亡字段,但对于字段“省”,我需要在省内使用一个特定的方法/字段,即getName()/name @FXML 私有TableView decessiTableView; @FXML 私有表列decessidColumn; @FXML private table column decess

我有一个问题:我需要创建一个TableView,在其中显示一年内因不同疾病导致的所有死亡人数。问题是,在每一行中,我需要指定存储在Deathers类中的省字段。当我尝试构建TableView的不同列时,我使用每个死亡字段,但对于字段“省”,我需要在省内使用一个特定的方法/字段,即getName()/name

@FXML
私有TableView decessiTableView;
@FXML
私有表列decessidColumn;
@FXML
private table column decessivincial column;
@FXML
私有表列decessiAnnoColumn;
@FXML
私有表列decessindentials列;
@FXML
私有表列decessiMalattieTumoraliColumn;
@FXML
私家床柱下斜肌心肌柱;
@FXML
私有表列decessiMalattieContagioseColumn;
私有最终DecessinualisService DecessinualisService=新DecessinualisService();
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
DecessidColumn.setCellValueFactory(新的PropertyValueFactory(“id”));
decessiAnnoColumn.setCellValueFactory(新属性值工厂(“anno”));
DecessiProvincia Column.setCellValueFactory(新属性ValueFactory(“provincia”));
Decessindentials列。setCellValueFactory(新属性ValueFactory(“Indentials列”);
decessiMalattieTumoraliColumn.setCellValueFactory(新属性ValueFactory(“malattieTumorali”));
decessiMalattieContagioseColumn.setCellValueFactory(新属性ValueFactory(“malattieContagiose”);
decessimalatiecardiovascolari column.setCellValueFactory(新属性值工厂(“malatiecardiovascolari”);}

正如你所看到的,有一个专栏包含了“provincia”(英语中的provincia)。当我显示该表时,它显然会打印省份的toString()字符串(包含在DecessiAnnuali(英语中的annualdeath)中)。我只需要获取包含在Province中的name字段,而不是整个toString。

我假设您有一个
Provincia
类,
decessinuali
中的
getProvincia()
方法返回
Provincia
类的一个实例

因此,首先需要修复列的类型:

@FXML
private TableColumn<DecessiAnnuali, Provincia> decessiProvinciaColumn;

发布
Decessinuali
类和
Provincia
类(或
Provincia
属性使用的任何类)。
@FXML
private TableColumn<DecessiAnnuali, Provincia> decessiProvinciaColumn;
decessiProvinciaColumn.setCellValueFactory(new PropertyValueFactory<>("provincia"));
decessiProvinciaColumn.setCellFactory(column -> new TableCell<DecessiAnnuali, Provincia>() {
    @Override
    protected void updateItem(Provincia provincia, boolean empty) {
        super.updateItem(provincia, empty);
        if (empty || provincia == null) {
            setText("");
        else {
            setText(provincia.getName());
        }
    }
});