【发布时间】:2012-01-13 08:02:19
【问题描述】:
我需要将 JList 组件中的一行加粗以显示活动行。应该动态完成以让用户立即看到活动行中的更改。我怎样才能做到这一点?
【问题讨论】:
标签: java swing dynamic jlist bold
我需要将 JList 组件中的一行加粗以显示活动行。应该动态完成以让用户立即看到活动行中的更改。我怎样才能做到这一点?
【问题讨论】:
标签: java swing dynamic jlist bold
查看渲染器中的 CustomCellRenderer,您可以根据 isSelected 参数更改显示标签的颜色。
【讨论】:
CustomCellRenderer 并在其中创建了一个方法来设置粗体行的索引(以便渲染器可以理解哪个应该加粗)然后我将它分配给我的JList。但是当我调用我的方法(((boldCellrenderer)jList1.getCellRenderer()).SetBoldedIndex(boldIndex);)时,它不会更新视图,直到我执行诸如单击另一行之类的操作。我试图在我的 setter 方法中调用 updateUI() 并且它有效,这是正确的方法还是我应该做其他事情?
以防万一您想更改所选项目的颜色,您可以使用:
list.setSelectionForeground(Color.RED);
还有一个类似的API用于设置选中项的背景:
list.setSelectionBackground(Color.BLUE);
【讨论】: