java.lang.ClassCastException:java.util.ArrayList不能强制转换为javafx.collections.ObservableList
当我想在javafx中向tableview添加数据时,我收到了这个错误 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;
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_用户设置项(可观察列表);