java - Java - 添加或删除元素后 JList setCellRenderer 不更新
问题描述
我是 Java 新手,使用JList
with DefaultListModel
and 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;
}
以及 setter 和 getter 的三等详细信息;我第一次运行一切都很好,但是如何添加或删除并获得相同的渲染器?
解决方案
推荐阅读
- bash - 如何从命令行参数加载 bash 脚本的不同配置?
- python - 多处理时在哪里调用 join()
- solr - SolrCloud:底层文件被外力改变了?
- java - Apache CXF:是否可以在没有 CallbackHandler 的情况下设置密码?
- google-fabric - 将 aab 文件上传到 Crashlytic Fabric io
- node.js - 使用导出而不是 module.exports 的汇总包
- node.js - 如何控制 Apollo 上传服务器多流?像制作缓冲区?
- flutter - 安装应用程序时创建文件夹
- angular - 在我的测试 Angular 项目中,我认为我的映射功能有问题
- c# - JavaScript 运行时错误:无法获取显示 Microsoft Report Viewer ASPX 控件的未定义或空引用的属性“add_init”