2016-05-03 11 views
1

FXMLを使用してProgressBarでTableViewを作成しています。下のコードでProgressBarTableCellを含む行について、以下のようなエラーが表示されます。私はLink1 & Link2を参照しましたが、私が何をしているのか理解できません。JavaFX - TableView ProgressBar(エラー - setCellValueFactoryを適用できません)

エラー:

'setCellValueFactory(javafx.util.Callback<javafx.scene.control.TableColumn.CellDataFeatures<model.TableDisplayData,java.lang.Double>,javafx.beans.value.ObservableValue<java.lang.Double>>)' 

in 'javafx.scene.control.TableColumn' cannot be applied to 

'(javafx.util.Callback<javafx.scene.control.TableColumn<model.TableDisplayData,java.lang.Double>,javafx.scene.control.TableCell<model.TableDisplayData,java.lang.Double>>)' 

コード:TableDisplayDataため

@FXML 
private TableView<TableDisplayData> tvDisplay; 
@FXML 
private TableColumn<TableDisplayData,String> colCarModel; 
@FXML 
private TableColumn<TableDisplayData,String> colModelIndicator; 
@FXML 
private TableColumn<TableDisplayData,Double> colSpeedProgress; 

@Override 
public void initialize(URL location, ResourceBundle resources) { 
colCarModel.setCellValueFactory(new PropertyValueFactory<TableDisplayData, String>("car")); 
colModelIndicator.setCellValueFactory(new PropertyValueFactory<TableDisplayData, String>("indicator")); 
colSpeedProgress.setCellValueFactory(new PropertyValueFactory<TableDisplayData, Double>("progressBar")); 
colSpeedProgress.setCellValueFactory(ProgressBarTableCell.<TableDisplayData> forTableColumn()); 
} 

コード:

public class TableDisplayData{ 
private String car; 
private String indicator; 
private DoubleProperty progressBar = new SimpleDoubleProperty(); 

public TableDisplayData(String car, String indicator, double progressBar) { 
    this.car= car; 
    this.indicator = indicator; 
    setProgressBar(progressBar); 
} 
getters & setters.... 

答えて

3

あなたはconfにありますcellValueFactorycellFactoryを使用してください。 cellValueFactoryは、のデータを表示します。表示するデータはです。 cellFactoryは、データを表示する方法をに指示します。

だから、

colSpeedProgress.setCellValueFactory(new PropertyValueFactory<TableDisplayData, Double>("progressBar")); 
colSpeedProgress.setCellFactory(ProgressBarTableCell.<TableDisplayData> forTableColumn()); 

を(setCellValueFactory、二行目は、setCellFactoryに変更されていない注意してください)が必要です。

関連する問題