为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改未选中的 JList 项目的背景颜色?

如何更改未选中的 JList 项目的背景颜色?

HUX布斯 2023-05-17 17:54:55
嘿嘿 我正在用 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以恢复支持对象的状态。


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信