本站消息

站长简介/公众号


站长简介:逗比程序员,理工宅男,前每日优鲜python全栈开发工程师,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

java.lang.ClassCastException:java.util.ArrayList 不能转换为 javafx.collections.ObservableList [重复]

发布于2021-11-13 04:28     阅读(1023)     评论(0)     点赞(24)     收藏(0)


当我想在 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;
}

在控制器类中:

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





        }

解决方案


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

ObservableList<User> observableArrayList = 
           FXCollections.observableArrayList(u.afficher_user());
dgv_user.setItems(observableArrayList);


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/315252/268f6f0ed3aabb8e4316/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)