Tableview如何编辑单元格

时间:2014-04-09 16:29:38

标签: java javafx

我昨天开始为我的项目学习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");             
    }
}
单击后

无法编辑单元格。我需要什么改变?

1 个答案:

答案 0 :(得分:0)

t.setEditable(true),这是你的TableView对象。没有进一步的信息/代码,这是第一次尝试。 每个TableColumn对象都是一样的。