リストボックスを設定して行のテキスト色を指定します
6280 ワード
1 list.setCellRenderer(new MyRenderer(new int[] {2,3}, Color.RED)); // 2 3
2
3 class MyRenderer extends DefaultListCellRenderer {
4
5 private Font font1;
6 private Font font2;
7 private Color rowcolor;
8 private int row;
9 private int[] rows;
10
11 public MyRenderer() {
12 this.font1 = getFont();
13 this.font2 = font1.deriveFont((float) (font1.getSize() + 10));
14 }
15
16 public MyRenderer(int row, Color color) {
17 this.rowcolor = color;
18 this.row = row;
19 }
20
21 public MyRenderer(int[] rows, Color color) {
22 this.rowcolor = color;
23 this.rows = rows;
24 }
25
26 public Component getListCellRendererComponent(JList list, Object value,
27 int index, boolean isSelected, boolean cellHasFocus) {
28 super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
29 if (rows==null) {
30 if (index == row) {
31 setForeground(this.rowcolor);
32 setFont(getFont().deriveFont((float) (getFont().getSize() + 2)));
33 }
34 } else {
35 for (int i = 0; i < rows.length; i++) {
36 if (index == rows[i]) {
37 setForeground(this.rowcolor);
38 setFont(getFont().deriveFont((float) (getFont().getSize() + 2)));
39 }
40 }
41 }
42
43 return this;
44 }
45 }