如何在javafx中使用节点方法setAll()和addAll()?

如何在javafx中使用节点方法setAll()和addAll()?,java,javafx,combobox,nodes,Java,Javafx,Combobox,Nodes,这个方法有问题,因为我在vbox中使用这个方法从子类中获取值。 我从数据库获得的值,如果我使用addAll(),数据库中的数据总是增加,但如果我使用setAll(),数据不再增加,而是只显示数据库中的最后一列。代码类似于vbox.getChildren().addAll(节点)或vbox.getChildren().setAll(节点)如何解决此问题 @FXML private void CB(ActionEvent event) { String depart =

这个方法有问题,因为我在vbox中使用这个方法从子类中获取值。 我从数据库获得的值,如果我使用addAll(),数据库中的数据总是增加,但如果我使用setAll(),数据不再增加,而是只显示数据库中的最后一列。

代码类似于
vbox.getChildren().addAll(节点)
vbox.getChildren().setAll(节点)

如何解决此问题

 @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)

布尔addAll(E…元素)

一种方便的元素var-arg添加方法

setAll()方法擦除现有值,并用给定的输入替换它(list size=input.size)

布尔集合(E…元素)

清除ObservableList并添加作为var args传递的所有元素

参考: