我有一个自定义的 JList 渲染器,它有一个图像和一些标签。我知道如何使用 isSelected 变量和 UIManager 默认 L&F 设置此列表的背景和前景。
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
panel.setForeground(isSelected ? list.getSelectionForeground() : list.getForeground());
panel.setBackground(isSelected ? list.getSelectionBackground() : list.getBackground());
这很好用,但我不确定 JLabel 的颜色,因为有“选定的”颜色键。As such when the item is selected it doesn't change color and has little contrast.
我找到了一个可以用来从中获取数据的键列表,UIManager
但我不确定哪些键用于“选定的 JList 项目标签”。
例如,在 OSX 上,默认设置是带有黑色文本的白色背景。然而,在选择单元格背景为蓝色,文本变为白色。我想知道如何查找标签变成什么颜色(在本例中为白色)。Foreground/background/disabled 是我唯一能找到的。