主要问题是标签默认情况下是不透明的,因此您需要使标签不透明才能绘制背景。
但是您不需要为此创建自定义渲染器。默认渲染器是不透明的。您所需要做的就是设置列表的选择背景属性:
list.setSelectionBackground(Color.RED);
如果您尝试创建一个渲染器以使文本右对齐,则只需在默认渲染器上设置一个属性即可:
DefaultListCellRenderer renderer = (DefaultListCellRenderer)list.getCellRenderer();renderer.setHorizontalAlignment(SwingConstants.RIGHT);



