2016-04-13 37 views
0

Bir türden iki boyutlu nesne nesnesine sahibim. Her bir tablo hücresini veri, satır ve sütun dizinine göre biçimlendirmek istiyorum. Bu nedenle, şu anda tablonun hangi hücresinin biçimlendirildiğini bilmeliyim. SetCellFactory içinde updateItem içinde geçerli hücre dizini veren yöntemi bulamadım.Biçimlendirilmiş Tablo Görünümü Hücresinin dizini nasıl belirlenir

private TableView<String[]> createTableView() { 

    String data[][] = { { "a", "b", "c", "d" }, { "f", "f", "h", "h" }, { "i", "a", "k", "a" } }; 

    TableView<String[]> tview = new TableView<String[]>(); 

    ObservableList<String[]> obList = FXCollections.observableArrayList(); 
    for (int i = 0; i < data.length; i++) 
     obList.add(data[i]); 

    tview.setItems(obList); 

    for (int i = 0; i < data[0].length; i++) { 
     TableColumn<String[], String> col = new TableColumn<String[], String>(data[0][i]); 

     final int colNo = i;    
     col.setCellValueFactory(param -> new SimpleStringProperty(param.getValue()[colNo])); 
     tview.getColumns().add(col); 

     col.setCellFactory(column -> { 
      return new TableCell<String[], String>(){ 
       @Override 
       protected void updateItem(String item, boolean empty) { 
        super.updateItem(item, empty); 
        if (item != null && !empty) { 
         int row = getIndex(); 
         int col = 0;//??? how to determine which column is it 
         setText("["+row+","+col+"] " + item); 
        } 
       } 
      }; 
     }); 
    } 
    return tview; 
} 

cevap

0

Sana almaya çalışırken hangi endeks tam emin değilim, ancak cep uygulanmasında sütun dizini sadece colNo olduğunu ve tarafından satır dizini alabilirsiniz: Burada TableView oluşturmak için tüm kodu getIndex() numaralı telefonu arayın.

İlgili konular