Javafx PropertyValueFactory не заполняет табличное представление
Это сбило меня с толку некоторое время, и я не могу понять это. Я'm, используя Cell Value Factory, чтобы заполнить простую таблицу с одним столбцом, и она не заполняется в таблице.
Это происходит, и я щелкаю строки, которые заполнены, но я не вижу никаких значений в них - в этом случае значения String. [Я только отредактировал это, чтобы сделать это более ясным]
У меня есть другой проект, в котором он работает в рамках той же модели данных. Что я делаю неправильно?
Вот'с кодом. Комментарий в конце, похоже, работает. Я'мы проверили, есть ли обычные ошибки - создание нового экземпляра столбца или нового экземпляра табличного представления. Ничего такого. Пожалуйста помоги!
// Простая модель данных 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);
}
}
// Контроллер класса MainGuiController.java
private ObservableList data;
@FXML
private TableView stockTableView;// = new TableView(data);
@FXML
private TableColumn 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("stockTicker"));
stockTableView.setItems(data);
}
/*THIS, ON THE OTHER HAND, WORKS*/
/*Callback cellDataFeat =
new Callback() {
@Override
public ObservableValue call(CellDataFeatures p) {
return new SimpleStringProperty(p.getValue().getstockTicker());
}
};*/