2013-12-12 115 views
1

我是javafx上的新手。我已經在覈心Java代碼中設置值爲表。但是現在我正在用javafx轉換我的項目來維護代碼並改進設計。如何在javafx的TableView中設置單元格的值

我想設置值的表視圖,但我沒有得到如何設置值到tableview。

這是我的代碼,我正在使用的鞦韆。

String testbedName = treePath.getPathComponent(1).toString(); 
    TestBed currentTestbed = getTbF().get(testbedName); 
    propertyTable.getModel().setValueAt(currentTestbed.getTestBedName(), 0, 1); 
    propertyTable.getModel().setValueAt(currentTestbed.getTestBedFilePath() + "\\" + testbedName + ".xml", 1, 1); 
    propertyTable.getModel().setValueAt(currentTestbed.getTbElements().size(), 2, 1); 

但我需要轉換此代碼在javafx手段從JTable到TableView。但tableview找不到getModel()方法。

我搜索,但沒有得到如何設置值的表視圖。
請給我參考或提示。

在此先感謝。

+0

有JavaFX的文檔網站上相當不錯的教程,這裏是關於[TableView中(HTTP的一個:// docs.oracle.com/javafx/2/ui_controls/table-view.htm) –

+0

你想編輯/添加數據到一個單元格或者你只是想一次填充表? – Ravindu

回答

4

在JavaFX中,您通常不會像這樣設置單元格的值。在你的情況,例如,你會

  • 地方你在表測試平臺:

    TableView<TestBed> table = new TableView<>(); 
    table.getItems().addAll(yourTestBeds); 
    
  • 然後創建你需要的列,通過提供相應的單元格的值的工廠,例如(使用Java的語法8):

    TableColumn<TestBed, String> name = new TableColumn<>(); 
    name.setCellValueFactory(c-> new SimpleStringProperty(c.getValue().getTestBedName())); 
    

    如果您使用Java 7:

    name.setCellValueFactory(new Callback<CellDataFeatures<TestBed, String>, ObservableValue<String>>() { 
        @Override public ObservableValue<String> call(CellDataFeatures<TestBed, String> c) { 
         return new SimpleStringProperty(c.getValue().getTestBedName())); 
        } 
    }); 
    
  • 最後你列添加到表:

    table.getColumns().addAll(name, someOtherColumn); 
    
+3

是的,但他問如何編輯和設置特定單元格的價值是不是他? – viper

1

假設我們有兩列,一個一個字符串,其他的數量的表格。要通過編程設置表的第i項或行,我們可以這樣做:

//Define the string 
String s = "myString" ; 
//Define the number 
int value = 5; 
//Synthesize the item = row 
Item item = new Item(s, value); 
//Set the i-th item 
table.getItems().set(i, item); 
相關問題