Столбец таблицы с плавающей запятой

Я пытаюсь создать float TableColumn, но продолжаю получать ошибки... Можете ли вы помочь? Спасибо

public class DoctorsController implements Initializable
{
    @FXML private Button back;
    @FXML private Button quit;
    @FXML private TableView table;
    @FXML private TableColumn<ObservableList,String> name;
    @FXML private TableColumn<ObservableList,String> fname;
    @FXML private TableColumn<ObservableList,String> address;
    @FXML private TableColumn<ObservableList,Float> pop;
    @FXML private TableColumn<ObservableList,String> work;
    private ObservableList<ObservableList> data;
    private Model model;
    private DoctorsModel doctorsModel;

    @FXML
    public void handleButtonAction(ActionEvent event) throws IOException
    {
        if(event.getSource()==back)
        {
            Stage stage = (Stage)back.getScene().getWindow();
            Parent root = FXMLLoader.load(getClass().getResource("view/MenuView.fxml"));
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.show();
        }
        else if(event.getSource()==quit)
        {
            System.exit(0);
        }
    }
    @Override 
    public void initialize(URL url, ResourceBundle rb)
    {
        model = Model.getInstance();
        doctorsModel = model.getDoctorsModel();
        name.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, String> cdf)->
            new SimpleStringProperty(cdf.getValue().get(0).toString()));

        fname.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, String> cdf)->
            new SimpleStringProperty(cdf.getValue().get(1).toString()));

        address.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, String> cdf)->
            new SimpleStringProperty(cdf.getValue().get(2).toString()));

        pop.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, Float> cdf)->
            new SimpleFloatProperty((float)cdf.getValue().get(3)));

        work.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, String> cdf)->
            new SimpleStringProperty(cdf.getValue().get(4).toString()));

        data = doctorsModel.result();

        for (int i=0; i<data.size();i++)
        {
            ObservableList row = FXCollections.observableArrayList(data.get(i));
            table.getItems().add(row);
        }   
    } 
}

В строке, где я определяю pop, мне говорят «несовместимые типы параметров в лямбда-выражении». У меня была эта ошибка раньше, и я решил ее сам, но здесь я не знаю, что делать... Все остальные столбцы - String, но этот, для целей сортировки, мне нужно быть с плавающей запятой или двойным.


person Lucille    schedule 07.05.2018    source источник
comment
На самом деле это работает. Когда все String, нет проблем, это плавающий, который возится со мной.   -  person Lucille    schedule 07.05.2018
comment
FloatProperty это Property<Number>, а не Property<Float>. Вам нужно либо использовать SimpleObjectProperty<Float>, либо изменить тип столбца на TableColumn<ObservableList, Number>.   -  person fabian    schedule 07.05.2018
comment
Большое спасибо !   -  person Lucille    schedule 07.05.2018