画像といくつかのラベルを持つカスタム 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 の色についてはわかりません。そのため、項目を選択しても色は変わらず、コントラストもほとんどありません。
データの取得に使用できるキーのリストを見つけましたUIManager
が、「選択された JList アイテム ラベル」に使用されるキーがどれかわかりません。
たとえば、OSX では、デフォルトは白い背景に黒いテキストです。ただし、選択すると、セルの背景が青になり、テキストが白になります。ラベルが何色に変わるか (この場合は白) を調べる方法を知りたいです。前景/背景/無効は、私が見つけることができる唯一のものです。