0

I'm trying to create a float TableColumn but keep getting errors... Can you help ? Thanks

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);
        }   
    } 
}

On the line where I define pop, it tells me "incompatible parameter types in lambda expression". I've had this error before and I solved it myself but here I don't know what to do... All the other columns are String, but this one, for sorting purpose, I need to be float or double.

Lucille
  • 11
  • 1
  • 4

0 Answers0