我昨天开始为我的项目学习javafx。我尝试快速学习从数据库中获取数据到javafx。今天我从示例中学习如何将查询从db绑定到tableview http://blog.ngopal.com.np/2011/10/19/dyanmic-tableview-data-from-database/ 这很好用,现在我在为我的功能
寻找原因public void buildData(){
Connection c ;
data = FXCollections.observableArrayList();
try{
c = DBConnect.connect();
String SQL = "SELECT * from tabela";
ResultSet rs = c.createStatement().executeQuery(SQL);
for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++) {
//We are using non property style for making dynamic table
final int j = i;
TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
t.getColumns().addAll(col);
System.out.println("Column ["+i+"] ");
}
/********************************
* Data added to ObservableList *
********************************/
while(rs.next()){
//Iterate Row
ObservableList<String> row = FXCollections.observableArrayList();
for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++) {
//Iterate Column
row.add(rs.getString(i));
}
System.out.println("Row [1] added "+row );
data.add(row);
}
//FINALLY ADDED TO TableView
t.setItems(data);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error on Building Data");
}
}
单击后无法编辑单元格。我需要什么改变?
答案 0 :(得分:0)
t.setEditable(true),这是你的TableView对象。没有进一步的信息/代码,这是第一次尝试。 每个TableColumn对象都是一样的。