Как я могу использовать метод узла setAll () и addAll () в javafx? - PullRequest
0 голосов
/ 04 июня 2019

У меня проблема с этим методом, потому что я использую этот метод в vbox, чтобы получить значение из дочернего класса.Значение, которое я получил из базы данных, если я использую addAll (), данные из базы данных всегда увеличиваются, но если я использую setAll (), данные больше не увеличиваются, а просто отображают один последний столбец в моей базе данных.

код это как vbox.getChildren().addAll(node); или 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);
        }

    }

Извините за мой плохой английский

1 Ответ

0 голосов
/ 04 июня 2019

addAll () метод берет ваш ввод и добавляет его к существующим значениям. Для базового списка из 3 элементов вы добавите свой ввод к этим 3 элементам (размер списка = 3 + input.size).

логическое addAll (E ... elements)

Удобный способ добавления элементов в var-arg.

setAll () метод стирает существующие значения и заменяет их на заданный вход (list size = input.size)

логический наборAll (E ... elements)

Очищает ObservableList и добавляет все элементы, переданные как var-args.

Ссылка: https://docs.oracle.com/javase/8/javafx/api/javafx/collections/ObservableList.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...