java - 如何在 javafx 中使用节点方法 setAll() 和 addAll()?
问题描述
我对这个方法有问题,因为我在 vbox 中使用这个方法从子类中获取值。我从数据库中获得的值,如果我使用 addAll() 数据库中的数据总是增加,但如果我使用 setAll() 数据不再增加,而只是在我的数据库中显示最后一列。
类似于vbox.getChildren().addAll(node);
or的代码vbox.getChildren().setAll(node);
。
我如何解决这个问题?
@FXML
private void CB(ActionEvent event) {
String depart = comboBox.getValue();
String sql = "SELECT b.kota, bb.kota, single.harga FROM single_trip as single \n" +
"INNER JOIN departure as depart ON depart.kode_departure = single.kode_departure \n" +
"INNER JOIN bandara as b on b.kode_bandara = depart.kode_bandara \n" +
"INNER JOIN arrived as arrive on arrive.kode_arrived = single.kode_arrived \n" +
"INNER JOIN bandara as bb on bb.kode_bandara = arrive.kode_bandara \n" +
"WHERE b.nama_bandara = '"+depart+"'";
try {
con.st = con.conn.createStatement();
con.rs = con.st.executeQuery(sql);
Node[] nodes = new Node[1];
while(con.rs.next()){
for(Node node : nodes){
FXMLLoader hb = new FXMLLoader(getClass().getResource("ComboBoxloop.fxml"));
node = hb.load();
String namaDepart = con.rs.getString("b.kota");
String namaArrive = con.rs.getString("bb.kota");
int harga = con.rs.getInt("single.harga");
ComboBoxloopController controller = hb.getController();
controller.getValueFromCB(namaDepart, namaArrive, harga);
controller.setDepart(namaDepart);
controller.setArrive(namaArrive);
controller.setHarga(harga);
pnlComboBoxloop.getChildren().addAll(node);
// or pnlComboBoxloop.getChildren().setAll(node);
}
}
} catch (SQLException | IOException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
对不起,我的英语不好
解决方案
addAll()方法接受您的输入并将其添加到现有值中。对于 3 个元素的基本列表,您将输入添加到 3 个元素(列表大小 = 3 + input.size)。
boolean addAll(E... 元素)
添加元素的 var-arg 的便捷方法。
setAll()方法擦除现有值并将其替换为给定的输入(列表大小 = input.size)
boolean setAll(E... 元素)
清除 ObservableList 并添加所有作为 var-args 传递的元素。
参考:https ://docs.oracle.com/javase/8/javafx/api/javafx/collections/ObservableList.html
推荐阅读
- python - 每次运行代码时是否可以一一返回列表的元素?
- linux - 脚本和命令行中 md5 总和的不同值
- javascript - 使用 Tab 键将焦点设置在有角度的材质上
- javascript - 如何保存最后一个元素并扩展到它?
- filter - ffmpeg过滤复杂错误(烧字幕使用覆盖过滤)
- java - Kotlin 中的多对多休眠
- javascript - 如何在vue js项目中检测用户的firebase身份验证登录状态?
- angular - 角材料表访问tbody
- c# - 带有特殊字符的 ASP.NET MVC 中的 RestAPI Post 方法不起作用
- arrays - jq:从数组中删除元素