Javafx PropertyValueFactory no está poblando Tableview

Esto me ha desconcertado por un tiempo y parece que no puedo entenderlo. Estoy usando Cell Value Factory para rellenar una tabla simple de una columna y no se llena en la tabla.

Lo hace y hago clic en las filas que están pobladas, pero no veo ningún valor en ellas, en este caso, los valores de cadena. [Acabo de editar esto para que sea más claro]

Tengo un proyecto diferente en el que funciona bajo el mismo tipo de modelo de datos. ¿Qué estoy haciendo mal?

Aquí está el código. El código comentado al final parece funcionar bien. He comprobado si existen los errores habituales: crear una nueva instancia de columna o una nueva instancia de tableview. Nada. ¡Por favor ayuda!

// Modelo de datos simple Stock.java

public class Stock {

    private SimpleStringProperty stockTicker;

    public Stock(String stockTicker) {
        this.stockTicker = new SimpleStringProperty(stockTicker);
    }

    public String getstockTicker() {
        return stockTicker.get();
    }

    public void setstockTicker(String stockticker) {
        stockTicker.set(stockticker);
    }
}

// Controlador de la clase MainGuiController.java

    private ObservableList<Stock> data;
    @FXML
    private TableView<Stock> stockTableView;// = new TableView<>(data);
    @FXML
    private TableColumn<Stock, String> tickerCol;


    private void setTickersToCol() {
    try {
        Statement stmt = conn.createStatement();//conn is defined and works
        ResultSet rsltset = stmt.executeQuery("SELECT ticker FROM tickerlist order by ticker");
        data = FXCollections.observableArrayList();
        Stock stockInstance;
        while (rsltset.next()) {
            stockInstance = new Stock(rsltset.getString(1).toUpperCase());
            data.add(stockInstance);
        }
    } catch (SQLException ex) {
        Logger.getLogger(WriteToFile.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("Connection Failed! Check output console");
    }

    tickerCol.setCellValueFactory(new PropertyValueFactory<Stock,String>("stockTicker"));
    stockTableView.setItems(data);
    }

    /*THIS, ON THE OTHER HAND, WORKS*/
    /*Callback<CellDataFeatures<Stock, String>, ObservableValue<String>> cellDataFeat =
            new Callback<CellDataFeatures<Stock, String>, ObservableValue<String>>() {
        @Override
        public ObservableValue<String> call(CellDataFeatures<Stock, String> p) {
            return new SimpleStringProperty(p.getValue().getstockTicker());
        }
    };*/

Respuestas a la pregunta(2)

Su respuesta a la pregunta