java - 在运行时更改 JList 行颜色

标签 java user-interface swing jlist

我正在尝试动态更改 JList 行。我需要更改第 n 行颜色,突出显示它(编译期间 n 未知)。我看到了很多使用自定义 ListCellRenderer 的例子,但都是“静态的”。

换句话说,我有 x 行的 JList。在运行时,我的“业务逻辑”检测到第 n 行很重要。所以我想让它的背景变绿,等一下,然后再变白。还有一件事,不要更改行选择。

最好的方法是什么?

最佳答案

很简单,使用以下方法将自定义 ListCellRenderer 设置为您的 JList:

list.setCellRenderer(myListCellrenderer);

现在在覆盖的方法 getListCellRendererComponent() 中执行如下操作:

public Component getListCellRendererComponent(.....) {
    Component c = super.getListCellRendererComponent();
    c.setBackGround(Color.blue)
    return c;
}

上面的示例假设您的自定义渲染器覆盖了 DefaultListCellRenderer

关于java - 在运行时更改 JList 行颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664924/

相关文章:

java - 如何将 RDF 转换为字符串

java - 使用 Oracle DBMS : No matching username found in Principals 登录 JBOSS

macos - 在 Qt 中创建胶囊式工具栏控件

java - CellRenderer 项目重绘

java - Servlet 是单例的设计原则是什么

c++ - 如何为 QtWebKit 安装插件

java - 可以从 JList 获取所有项目吗?

java - 为什么我应该使用单独的线程在 JAVA 中显示 GUI

java - JCheckBox 的问题在 Java 的 JList 中检查了切换逻辑

java - spring xml 中未评估属性