2014-01-28 57 views
0

我在TableView中有兩列,一列保存整數,另一列保存字符串。Javafx爲不同類型重用相同的cellfactory

colId.setCellValueFactory(new PropertyValueFactory<MyCellData, String>("id")); 
colName.setCellValueFactory(new PropertyValueFactory<MyCellData, String>("name")); 

的MyCellData類持有針對行

public static class MyCell extends TableCell<MyCellData, Object> { 

    public MyCell() { 
     super(); 
    } 

    @Override 
    protected void updateItem(Object item, boolean empty) { 
     if (item != null) { 
      setText((String) item); 
     } 
    } 

} 

以上了myCell類是基本cellfactory的信息。是否有可能在第一段代碼中看到的兩列都使用它,儘管一個是整數,另一個是字符串?

+0

我在這裏回答了類似的問題http://stackoverflow.com/a/21365915/2855515 – brian

+0

謝謝,我找到了一個類似於你的解決方案。我已經在這裏回答了這個問題 –

回答

0

我發現了一個似乎很好的解決方案。

我改變

public static class MyCell extends TableCell<MyCellData, Object> { 

public static class MyCell<E> extends TableCell<MyCellData, E> { 

所以我可以創造像這樣

Callback<TableColumn<MyCellData, Integer>, TableCell<MyCellData, Integer>> c2 = new Callback<TableColumn<MyCellData, Integer>, TableCell<MyCellData, Integer>>() { 
      @Override 
      public TableCell<MyCellData, Integer> call(TableColumn<MyCellData, Integer> param) { 
       return new MyCell<Integer>(); 
      } 
     }; 

更改整數轉字符串包含字符串的列的新CellFactory!

相關問題