Я новичок в 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;
}
И деталь третьего класса для сеттера и геттера; в первый раз я запускаю все нормально, но как добавить или удалить и получить тот же рендер?