2014-01-13 22 views
0

真的不知道這裏有什麼問題.. UI是使用JavaFX Scene Builder創建的...... 我使用Cell Value Factory來填充TableView與控制器對象中的數據組成:無法看到數據注入到TableView對象,但可以選擇它

final ObservableList<Product> data = FXCollections.observableArrayList(
       new Product("milk UHT 3,2%", "2", "3,55"), 
       new Product("milk UHT 3,2%", "2", "3,55"), 
       new Product("milk UHT 3,2%", "2", "3,55"), 
       new Product("milk UHT 3,2%", "2", "3,55"), 
       new Product("milk UHT 3,2%", "2", "3,55") 

     ); 

     productNameColum.setCellValueFactory(new PropertyValueFactory<Product, String>("description")); 
     productQuantityColum.setCellValueFactory(new PropertyValueFactory<Product, String>("quantity")); 
     productPriceColum.setCellValueFactory(new PropertyValueFactory<Product, String>("price")); 

     receiptTable.setItems(data); 

這裏是我的屬性對象:

private class Product{ 
     private SimpleStringProperty description; 
     private SimpleStringProperty quantity; 
     private SimpleStringProperty price; 


     private String getDescription() { 
      return description.get(); 
     } 

     private SimpleStringProperty descriptionProperty() { 
      return description; 
     } 

     private void setDescription(String description) { 
      this.description.set(description); 
     } 

     private String getQuantity() { 
      return quantity.get(); 
     } 

     private SimpleStringProperty quantityProperty() { 
      return quantity; 
     } 

     private void setQuantity(String quantity) { 
      this.quantity.set(quantity); 
     } 

     private String getPrice() { 
      return price.get(); 
     } 

     private SimpleStringProperty priceProperty() { 
      return price; 
     } 

     private void setPrice(String price) { 
      this.price.set(price); 
     } 

     private Product(String name, String quantity, String price) { 
      this.description = new SimpleStringProperty(name); 
      this.quantity = new SimpleStringProperty(quantity); 
      this.price = new SimpleStringProperty(price); 
     } 
    } 

啓動它我越來越充滿了看不見的數據:) 表我可以選擇,但不能看到後沒有:

http://i.stack.imgur.com/nhFxD.png

回答

2

所有getter和你Product類的二傳手是私有的。 Product的Getter必須是public

private class Product{ 
     private SimpleStringProperty description; 
     private SimpleStringProperty quantity; 
     private SimpleStringProperty price; 


     public String getDescription() { 
      return description.get(); 
     } 

     private SimpleStringProperty descriptionProperty() { 
      return description; 
     } 

     private void setDescription(String description) { 
      this.description.set(description); 
     } 

     public String getQuantity() { 
      return quantity.get(); 
     } 

     private SimpleStringProperty quantityProperty() { 
      return quantity; 
     } 

     private void setQuantity(String quantity) { 
      this.quantity.set(quantity); 
     } 

     public String getPrice() { 
      return price.get(); 
     } 
+0

非常感謝RAM! – sw1

+0

問題是我正在使用內部類。將它與控件分離後,它將正常運行 – sw1

+0

如果該類是內部類,則無關緊要。如果Getter是私有的,PropertyValueFactory將不會調用它來檢索值。 –

相關問題