2017-04-01 81 views
0

當我要一個數據添加到tableview中JavaFX中我收到此錯誤java.lang.ClassCastException:java.util.ArrayList中不能轉換到javafx.collections.ObservableList

java.lang.ClassCastException: java.util.ArrayList中不能被轉換到 javafx.collections.ObservableList

類用戶

public class User { 
    private int id; 
    private String nom; 
    private String prenom; 
    private String cin; 
    private String tel; 
    private String adresse; 
    private String dn; 

和功能數據:

public ArrayList afficher_user() throws SQLException{  
     ArrayList<User> data = new ArrayList<>(); 
      Connection conn=null; 
      try { 
       Class.forName(Driver); 
       conn = DriverManager.getConnection(URL,"root",""); 
       String sql ="select * from utilisateur"; 
       PreparedStatement Stmt = conn.prepareStatement(sql); 
       ResultSet rs = Stmt.executeQuery(sql); 
       while(rs.next()){ 
       User us = new User(); 
       us.setId(rs.getInt("id")); 
       us.setNom(rs.getString("nom")); 
       us.setPrenom(rs.getString("prenom")); 
       us.setCin(rs.getString("cin")); 
       us.setAdresse(rs.getString("adresse")); 
       us.setTel(rs.getString("tel")); 
       us.setDn(rs.getString("dn")); 
       data.add(us); 
       } 
       rs.close(); 
       conn.close(); 
      } catch (ClassNotFoundException ex) { 
       System.err.println(ex.getMessage()); 
      } 
     return data; 
} 

在控制器類:

private TableView<User> dgv_user; 
    @FXML 
    private TableColumn<User,String> id; 
    private TableColumn<User, String> nom; 
    private TableColumn<User, String> prenom; 
    private TableColumn<User, String> cin; 
    private TableColumn<User, String> dn; 
    private TableColumn<User, String> tel; 
    private TableColumn<User,String> adresse; 


    public void creer_user(ActionEvent event) throws SQLException { 

     User u=new User(); 
     System.out.println(u.afficher_user()); 
     dgv_user.setItems((ObservableList<User>) u.afficher_user()); 





     } 

回答

1

不能直接投的ArrayList對象observableList,而你需要使用FXCollections.observableArrayList()如在下面的代碼&組listdgv_user目的。

ObservableList<User> observableArrayList = 
      FXCollections.observableArrayList(u.afficher_user()); 
dgv_user.setItems(observableArrayList); 
相關問題