JavaFX PropertyValueFactory未填充Tableview这使我困惑了一段时间,我似乎无法理解它。我使用CellValueFactory填充一个简单的单列表,但它没有在表中填充。这样做了,我点击了填充的行,但是我没有看到它们中的任何值-在本例中,是字符串值。[我只是编辑了这篇文章,使之更清晰]我有一个不同的项目,它在相同的数据模型下工作。我做错什么了?这是密码。不过,最后的注释代码似乎有效。我已经检查了是否存在常见的错误-创建新的列实例或新的tableview实例。没什么。救命啊!/简单数据模型Stock.javapublic 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);
}}/Controller类MainguicController.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());
}
};*/
2 回答

牧羊人nacy
TA贡献1862条经验 获得超7个赞
如何修复它
getstockTicker
getStockTicker
setstockTicker
setStockTicker
一些背景资料
new PropertyValueFactory<Stock,String>("stockTicker")
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); } public StringProperty stockTickerProperty() { return stockTicker; }}
添加回答
举报
0/150
提交
取消