summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java')
-rw-r--r--Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java b/Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java
new file mode 100644
index 0000000..9249dbf
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/examples/ColoredTableCellRenderer.java
@@ -0,0 +1,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;
+ }
+} \ No newline at end of file