8

JList で選択されている項目の背景色を動的に変更するにはどうすればよいですか?

4

4 に答える 4

22

次のようなものが出発点として役立ちます。

public class SelectedListCellRenderer extends DefaultListCellRenderer {
     @Override
     public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
         if (isSelected) {
             c.setBackground(Color.RED);
         }
         return c;
     }
}
// During the JList initialisation...
jlist1.setCellRenderer(new SelectedListCellRenderer());
于 2009-10-16T09:12:13.910 に答える
1

より簡単な方法は、Eclipse でデザイン モードに移動し、JList のプロパティで、2 つの小さな矢印と大きな黄色の矢印が間にあるボタンをクリックして、[高度なプロパティを表示] を開くことです。次に、下にスクロールして、「selectionBackground」と表示されている場所の色を変更し、そこで色を変更します (おそらく灰色になりますが、それでも変更されます)。これで、プログラムを実行すると、何を選択しても、背景はその色になります。

于 2012-03-30T08:12:48.110 に答える