Java - JList setCellRenderer не обновляется после добавления или удаления элемента - PullRequest
0 голосов
/ 05 ноября 2018

Я новичок в Java, использую JList с DefaultListModel и getListCellRendererComponent. Должны ли мы устанавливать визуализацию ячеек каждый раз, когда добавляем или удаляем элемент в JList? Извините за мой английский надеюсь, вы понимаете мой вопрос.

Вот код:

private JList <Detail>' createListdetail(String s) {

        model = new DefaultListModel<>();

        try {
            DbConnection.connDB();
             PreparedStatement  psm=DbConnection.getCon().prepareStatement("SELECT * FROM produit WHERE CONVERT(NVARCHAR(MAX),[designation]) LIKE ?+'%'");
             psm.setString(1, s);
             rs=psm.executeQuery();

             while (rs.next()) {
                 model.addElement(new Detail(rs.getString(1).trim(), rs.getString(3).trim(),"Réf: "+rs.getString(2).trim(), rs.getString(6)));
             }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        list = new JList<Detail>(model);
        list.setValueIsAdjusting(true);
        list.setCellRenderer(new Produitdetail());
        validate();
        repaint();
        return list;

    }


А для рендерера ячеек:

    @Override
    public Component getListCellRendererComponent(JList<? extends Detail> list, Detail detail, int arg2, boolean isselected,
            boolean hasfocus) {
        // TODO Auto-generated method stub
        txtdesignation.setText(detail.getDesign());
        txtpa.setText(detail.getDernierPA());
        txtquantite.setText(detail.getQuantite());
        txtid.setText(detail.getId());
        return this;
    }


И деталь третьего класса для сеттера и геттера; в первый раз я запускаю все нормально, но как добавить или удалить и получить тот же рендер?

...