在listview JavaFX中显示sql查询结果
我试图在JavaFX的listview中显示我的sql查询结果。下面是我的代码,在列表视图中不显示任何内容,显示为空 这里observearraylist()接受字符串列表中的参数,如“hello”、“all”,如我传入的arraylist引用变量。虽然没有显示结果?我错在哪里 代码在listview JavaFX中显示sql查询结果,java,javafx,Java,Javafx,我试图在JavaFX的listview中显示我的sql查询结果。下面是我的代码,在列表视图中不显示任何内容,显示为空 这里observearraylist()接受字符串列表中的参数,如“hello”、“all”,如我传入的arraylist引用变量。虽然没有显示结果?我错在哪里 代码 ArrayList<String> arr = new ArrayList<>(10); @FXML public void dispalyData(){
ArrayList<String> arr = new ArrayList<>(10);
@FXML
public void dispalyData(){
String sql = "SELECT cus_id, cus_name, cus_email FROM customer_detail";
try{
Connection conn = DataConnect.connect();
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
int i=0;
while(rs.next()){
arr.add(rs.getInt("cus_id") +"\t"+ rs.getString("cus_name")
+"\t"+ rs.getString("cus_email"));
}
System.out.println(Arrays.asList(arr.toArray()));
}
catch(SQLException e){
System.out.println(e.getMessage());
}
}
ObservableList<String> list = FXCollections.observableArrayList(arr);
@Override
public void initialize(URL url, ResourceBundle rb) {
viewlist.setItems(list);
}
ArrayList arr=新的ArrayList(10);
@FXML
公共void dispalyData(){
String sql=“从客户详细信息中选择客户id、客户名称、客户电子邮件”;
试一试{
Connection conn=DataConnect.connect();
PreparedStatement pst=conn.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
int i=0;
while(rs.next()){
arr.add(rs.getInt(“客户id”)+“\t”+rs.getString(“客户名称”)
+“\t”+rs.getString(“客户电子邮件”);
}
System.out.println(Arrays.asList(arr.toArray());
}
捕获(SQLE异常){
System.out.println(e.getMessage());
}
}
ObservableList=FXCollections.observableArrayList(arr);
@凌驾
公共void初始化(URL、ResourceBundle rb){
viewlist.setItems(列表);
}
在运行方法displayData
之前,您正在初始化list
。
您需要在方法中执行此操作。我建议您在while
循环结束后添加以下行
list=FXCollections.observearraylist(arr)代码>将参数的元素复制到创建的可观察列表中。即使使用作为参数传递的对象作为支持列表,修改支持列表也不会触发ObservableList
的更改事件<代码>列表视图
依赖于这些事件来更新自身
在dispalyData
中使用列表
:
@FXML
public void dispalyData(){
String sql = "SELECT cus_id, cus_name, cus_email FROM customer_detail";
list.clear();
try{
Connection conn = DataConnect.connect();
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while(rs.next()){
list.add(rs.getInt("cus_id") +"\t"+ rs.getString("cus_name")
+"\t"+ rs.getString("cus_email"));
}
System.out.println(Arrays.asList(list.toArray()));
} catch(SQLException e){
System.out.println(e.getMessage());
}
}
ObservableList<String> list = FXCollections.observableArrayList();
@FXML
公共void dispalyData(){
String sql=“从客户详细信息中选择客户id、客户名称、客户电子邮件”;
list.clear();
试一试{
Connection conn=DataConnect.connect();
PreparedStatement pst=conn.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
添加(rs.getInt(“cus\u id”)+“\t”+rs.getString(“cus\u名称”)
+“\t”+rs.getString(“客户电子邮件”);
}
System.out.println(Arrays.asList(list.toArray());
}捕获(SQLE异常){
System.out.println(e.getMessage());
}
}
ObservableList=FXCollections.observableArrayList();
您是否正确地编写了@fxml id?Initialize方法的工作原理与“post constructor”方法类似。您可以初始化FXCollections.observearraylist(arr)代码>从空的arraylist…FXCollections.observableArrayList(arr)
不引用arraylist
和observablearraylist
,它只是复制元素。您的决定->将项目添加到可观察的RAYLIST
中。提示:如果您没有声誉,请在问题段落中添加评论