1 package org.columba.addressbook.gui.table.renderer; 19 20 import java.awt.Color ; 21 import java.awt.Component ; 22 23 import javax.swing.BorderFactory ; 24 import javax.swing.JLabel ; 25 import javax.swing.JTable ; 26 import javax.swing.border.Border ; 27 import javax.swing.table.TableCellRenderer ; 28 29 30 33 34 public class DefaultLabelRenderer extends JLabel implements TableCellRenderer { 35 private Border unselectedBorder = null; 36 private Border selectedBorder = null; 37 private Color background; 38 private Color foreground; 39 private boolean isBordered = true; 40 41 44 public DefaultLabelRenderer() { 45 super(); 46 } 47 48 52 public Component getTableCellRendererComponent(JTable table, Object value, 53 boolean isSelected, boolean hasFocus, int row, int column) { 54 if (isBordered) { 55 if (isSelected) { 56 if (selectedBorder == null) { 57 selectedBorder = BorderFactory.createMatteBorder(2, 5, 2, 58 5, table.getSelectionBackground()); 59 } 60 61 setBackground(table.getSelectionBackground()); 63 setForeground(table.getSelectionForeground()); 64 } else { 65 if (unselectedBorder == null) { 66 unselectedBorder = BorderFactory.createMatteBorder(2, 5, 2, 67 5, table.getBackground()); 68 } 69 70 setBackground(table.getBackground()); 71 72 setForeground(table.getForeground()); 74 } 75 } 76 77 return this; 78 } 79 80 public boolean isOpaque() { 81 return (background != null); 82 } 83 84 89 public Color getBackground() { 90 return background; 91 } 92 93 98 public Color getForeground() { 99 return foreground; 100 } 101 102 108 public void setBackground(Color background) { 109 this.background = background; 110 } 111 112 118 public void setForeground(Color foreground) { 119 this.foreground = foreground; 120 } 121 } 122 | Popular Tags |