summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java
blob: 9249dbf963feb604fdcde56765df1437aa8def03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* ColoredTableCellRenderer.java */

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;

public class ColoredTableCellRenderer
implements TableCellRenderer
{
  private Color lightBlue = new Color(160, 160, 255);
  private Color darkBlue  = new Color( 64,  64, 128);

  public Component getTableCellRendererComponent(
    JTable table,
    Object value,
    boolean isSelected,
    boolean hasFocus,
    int row,
    int column
  )
  {
    //Label erzeugen
    JLabel label = new JLabel((String)value);
    label.setOpaque(true);
    Border b = BorderFactory.createEmptyBorder(1, 1, 1, 1);
    label.setBorder(b);
    label.setFont(table.getFont());
    label.setForeground(table.getForeground());
    label.setBackground(table.getBackground());
    if (hasFocus) { 
      label.setBackground(darkBlue);
      label.setForeground(Color.white);
    } else if (isSelected) {
      label.setBackground(lightBlue);
    } else {
      //Angezeigte Spalte in Modellspalte umwandeln
      column = table.convertColumnIndexToModel(column); 
      if (column == 1) {
        int numpages = Integer.parseInt((String)value);
        if (numpages >= 250) {
          label.setBackground(Color.red);
        } else if (numpages >= 200) {
          label.setBackground(Color.orange);
        } else {
          label.setBackground(Color.yellow);
        }
      }
    }
    return label;
  }
}