Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassCastException:java.util.ArrayList不能强制转换为javafx.collections.ObservableList_Java_Javafx_Tableview - Fatal编程技术网

java.lang.ClassCastException:java.util.ArrayList不能强制转换为javafx.collections.ObservableList

java.lang.ClassCastException:java.util.ArrayList不能强制转换为javafx.collections.ObservableList,java,javafx,tableview,Java,Javafx,Tableview,当我想在javafx中向tableview添加数据时,我收到了这个错误 java.lang.ClassCastException:java.util.ArrayList不能强制转换为 javafx.collections.ObservableList 类用户 public class User { private int id; private String nom; private String prenom; private String cin;

当我想在javafx中向tableview添加数据时,我收到了这个错误

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;
}
public ArrayList afficher\u user()抛出SQLException{
ArrayList数据=新的ArrayList();
连接conn=null;
试一试{
Class.forName(驱动程序);
conn=DriverManager.getConnection(URL,“根目录”,“根目录”);
String sql=“选择*来自利用者”;
PreparedStatement Stmt=conn.prepareStatement(sql);
结果集rs=Stmt.executeQuery(sql);
while(rs.next()){
用户us=新用户();
美国setId(rs.GEINT(“id”));
美国setNom(rs.getString(“nom”);
美国setPrenom(rs.getString(“prenom”);
美国setCin(rs.getString(“cin”));
美国证券交易所(rs.getString(“证券交易所”);
美国塞特尔(rs.getString(“tel”);
美国setDn(rs.getString(“dn”));
数据。添加(美国);
}
rs.close();
康涅狄格州关闭();
}捕获(ClassNotFoundException ex){
System.err.println(例如getMessage());
}
返回数据;
}
在控制器类中:

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());





        }
private TableView dgv_用户;
@FXML
私有表列id;
私有表列名称;
私人表格;
私人表格;
私有表列dn;
私人电话;
私人地址;
public void creer_用户(ActionEvent事件)抛出SQLException{
用户u=新用户();
System.out.println(u.afficher_user());
dgv_user.setItems((ObservableList)u.afficher_user());
}

您不能直接将
ArrayList
对象强制转换为
observableList
,而是需要使用
FXCollections.observableArrayList()
,如下代码所示,并将
列表
设置为
dgv_用户
对象

ObservableList<User> observableArrayList = 
           FXCollections.observableArrayList(u.afficher_user());
dgv_user.setItems(observableArrayList);
observeList observearraylist=
FXCollections.observearraylist(u.afficher_user());
dgv_用户设置项(可观察列表);