嘿嘿 我正在用 Java 编写一个删除非白名单文件的工具。不要问。它列出了用户使用 JFileChooser 选择的目录。这很好用,所有文件名都列在 JList 中(在我的例子中是在 JScrollPane 中)并显示在框架内。现在我想从 .txt 文件中读取文件名并检查它们是否与列表中的名称匹配。阅读和比较没有问题。但如果文件与 .txt 文件中的文件之一匹配,我想设置绿色背景。如果不是,那么显示项目的背景应该是红色的。但是,如果可能的话,我如何才能更改一行的这些背景呢?
1 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
很简单,使用以下方法将自定义 ListCellRenderer 设置为您的 JList:
list.setCellRenderer(myListCellrenderer);
现在在覆盖的方法 getListCellRendererComponent() 中执行如下操作:
public Component getListCellRendererComponent(.....) {
Component c = super.getListCellRendererComponent();
c.setBackGround(Color.blue)
return c;
}
当逻辑确定您应该将行显示为绿色时(当文件名相同时),您还可以选择在行的支持对象上设置状态并在 getListCellRendererComponent() 中测试该状态,设置背景如果状态正确则为绿色。同样,您可以选择设置 SwingTimer以恢复支持对象的状态。
添加回答
举报
0/150
提交
取消