首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TableColumn中显示对象

如何在TableColumn中显示对象
EN

Stack Overflow用户
提问于 2017-03-31 19:51:01
回答 1查看 679关注 0票数 0

嘿,每个人都试图在另一个对象中显示一个对象的属性,以便更清楚地说明,我有一个类Produit定义如下:

代码语言:javascript
复制
public class Produit {
private int idproduit;
private float prixunitaire;
private String designation;
private String description;
private boolean etatp;
private Bondereduction bondereductions;
private String lienimg;
private Categorie categories;

}

用它来获取和设置..。

我试图在一个TableView中显示这些数据,我用它来使它像这样

代码语言:javascript
复制
public class UpdateProdController implements Initializable {

@FXML
private TableColumn prixunitaire;
@FXML
private TableColumn description;
@FXML
private TableColumn designation;
@FXML
private TableColumn<Categorie,String> categorie;
@FXML
private TableColumn<Bondereduction, String> sommereduction;
@FXML
private TableColumn img;

ObservableList<Produit> prodList = FXCollections.observableArrayList();
@FXML
private TableView<Produit> updatetable;
String xx="";
/**
 * Initializes the controller class.
 */
@Override
public void initialize(URL url, ResourceBundle rb) {



  ProduitService pss = new ProduitService();
    prodList = pss.SelectProduits();
    //String des =prodList.get(0).getCategories().getDesignation().;
    System.out.println("sqsdqsdqsd   " + prodList);


    updatetable.setItems(prodList);
    prixunitaire.setCellValueFactory(new PropertyValueFactory<>("prixunitaire"));
    description.setCellValueFactory(new PropertyValueFactory<>("description"));
    designation.setCellValueFactory(new PropertyValueFactory<>("designation"));
   sommereduction.setCellValueFactory(new PropertyValueFactory<>("Bondereduction.sommereduction"));
   categorie.setCellValueFactory(new PropertyValueFactory<>("Categorie.designation"));

    img.setCellValueFactory(new PropertyValueFactory<>("lienimg"));
}

当我执行这段代码时,只有categoriesommereduction TableColumn为空,问题在这2行中。

代码语言:javascript
复制
   sommereduction.setCellValueFactory(new PropertyValueFactory<>("Bondereduction.sommereduction"));
   categorie.setCellValueFactory(new PropertyValueFactory<>("Categorie.designation"));

谁能帮我改变PropertyValueFactory<>以获得一个对象,而不是字符串,这样它就会明白,我试图在对象中显示一个字段。感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-31 20:36:58

您必须进一步深入您的PropertyValueFactory<>,如下所示:

代码语言:javascript
复制
sommereduction.setCellValueFactory(
        Produit -> {
            SimpleObjectProperty property = new SimpleObjectProperty();
            property.setValue(Produit.getValue().getBondereduction().getSommereduction()));
            return property;
        }
);

这应该能满足你的需要。这基本上是你所做的,只是它更进一步了。

它创建一个新的SimpleObjectProperty,然后使用Produit类获取Bondereduction,并使用该值返回sommereduction

我还建议更改

代码语言:javascript
复制
@FXML
private TableColumn<Categorie,String> categorie;
@FXML
private TableColumn<Bondereduction, String> sommereduction;

成为

代码语言:javascript
复制
@FXML
private TableColumn<Produit,String> categorie;
@FXML
private TableColumn<Produit, String> sommereduction;

因为这是您要显示的类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43148635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档