2013-04-28 2 views
0

J'ai un formulaire qui a 4 TextFields que j'essaie de suivre avec une liste Observable qui a 5 colonnes. Le TableView a une colonne supplémentaire pour contenir une valeur calculée (la 5ème colonne dans mon ObservableList).Valeur calculée transmise en paramètre au modèle de données n'apparaissant pas sur tableview

Les données sont déversées correctement à partir des 4 TextFields, mais la colonne calculée est vide. Je suppose que c'est un problème avec mes getters et setters, parce que la valeur est calculée avant que je la passe à mon modèle de données, ET je viens de tester le modèle de données, et c'est la valeur (passée en paramètre).

Pour ne pas mettre le code étranger ici, je pense que ce sont les parties pertinentes:

// Ceci est (en partie) mon modèle de données

public static class ItemSale { 
    private ItemSale (Double barC, String itemm, Double pricee, 
      Integer quant, Double totsP) { 
     this.barCode = new SimpleDoubleProperty(barC); 
     this.item = new SimpleStringProperty(itemm); 
     this.price = new SimpleDoubleProperty(pricee); 
     this.quantity = new SimpleIntegerProperty(quant); 
     this.rowPrice = new SimpleDoubleProperty(totsP); 

     System.out.println(totsP); // this (also) prints the correct value to the screen 

// Prix * Quantité = rowPrice, la valeur calculée qui ne montre pas plus tard

// getter & setter pour la quantité (œuvres, est un champ de texte sous ma forme)

public SimpleIntegerProperty getQuantity() { 
     return quantity; 
    } 
    public void setQuantity(Integer quant) { 
     quantity.set(quant); 
    } 

// getter & setter pour rowPrice (ne fonctionne pas, on calcule, voir ci-dessous)

public SimpleDoubleProperty getRowPrice(Double totsP) { 
     return rowPrice; 
    } 
    public void setRowPrice(Double totsP) { 
     rowPrice.set(totsP); 
    } 

// dans le gestionnaire d'action bouton Ajouter, j'ai ceci:

  Double rowPP; 
      rowPP = qua * pr; //qua = variable for quantity, pr = variable for price 
      System.out.println(rowPP); //prints to screen fine 

      data.add(new ItemSale(
        bcode, 
        item.getText(), 
        pr, 
        qua, 
        rowPP 
        )); 
+0

Ooops ... l'a compris. Je cherchais un autre problème et trouvé la réponse sur http://stackoverflow.com/questions/13518239/javafx-how-to-display-simplestringproperty-value-in-tableview et, en parcourant mon code, j'ai remarqué que j'avais le getter avec des paramètres. Retiré les paramètres et BOOM! ça a marché. – John

Répondre

Questions connexes