java ListView показывает содержимое даже после очистки - PullRequest
0 голосов
/ 19 мая 2018

Вот мой код.Я просто хочу отображать подкатегории в соответствии с выбранной категорией.Но он просто изменяет 1-ю строку.

public void refreshSubCategoryHandle(ActionEvent E) throws Exception {
        this.listSubCategories.getItems().clear();
        ObservableList<SubCategory> olsc = FXCollections.observableArrayList();
        olsc.clear();
        Connection con = (Connection) ConnectionClass.getConnection();
        String Sql = new String();
        Sql = "SELECT * FROM subCategory WHERE catId = '"+listCategories.getSelectionModel().getSelectedItem().getCatId()+"'";
        Statement st = (Statement) con.createStatement();
        ResultSet rst = st.executeQuery(Sql);
        while(rst.next()) {
            System.out.println("SubCateGory : "+rst.getString("sCatName"));
            olsc.add(new SubCategory(rst.getInt("sCatId"), rst.getInt("catId") , rst.getString("sCatName"), rst.getString("sCatDescription"), rst.getInt("sCatRank"), rst.getString("sCatCreatedAt"), rst.getString("sCatUpdatedAt"), rst.getString("sCatAddedBy")));
            //SubCategoryList.add(ct);
        }
//      System.out.println(olsc.get(1));
//      observableSubCategories.addAll(SubCategoryList);
        this.listSubCategories.getItems().addAll(olsc);
    }

Каждый раз, когда эта функция запускается, она должна показывать только подкатегории с категорией id 1 в виде списка, но она также отображает данные других списков ... (старые данные)

Проблема: не заменяет целые старые данные, а только одну строку старых данных из списка.

...