Beispiel für einen Renderer für Textausrichtung, Farben, Border und Font
Code:
public class AlignTableCellRenderer extends DefaultTableCellRenderer.UIResource { private DefaultTableCellRenderer renderer; private int horizontalAlignment=SwingConstants.CENTER; private Color foregroundColor=null; private Color backgroundColor=null; private Border border=null; private int fontstyle=Font.PLAIN; public AlignTableCellRenderer(JTable table) { renderer=(DefaultTableCellRenderer)table.getTableH eader().getDefaultRenderer(); } public AlignTableCellRenderer(JTable table,int horizontalAlignment) { this(table); this.horizontalAlignment=horizontalAlignment; } public AlignTableCellRenderer(JTable table,int horizontalAlignment,Color foregroundColor) { this(table); this.horizontalAlignment=horizontalAlignment; this.foregroundColor=foregroundColor; } public AlignTableCellRenderer(JTable table,int horizontalAlignment,int fontstyle,Color foregroundColor) { this(table); this.horizontalAlignment=horizontalAlignment; this.foregroundColor=foregroundColor; this.fontstyle=fontstyle; } public AlignTableCellRenderer(JTable table,int horizontalAlignment,Border border) { this(table); this.horizontalAlignment=horizontalAlignment; this.border=border; } public AlignTableCellRenderer(JTable table,Border border) { this(table); this.border=border; } public void setForegroundColor(Color foregroundColor) { this.foregroundColor=foregroundColor; } public void setBackgroundColor(Color backgroundColor) { this.backgroundColor=backgroundColor; } public void setFontstyle(int fontstyle) { this.fontstyle=fontstyle; } @Override public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) { JLabel label=(JLabel)renderer.getTableCellRendererCompone nt(table,value,isSelected,hasFocus,row,column); label.setHorizontalAlignment(horizontalAlignment); label.setFont(label.getFont().deriveFont(fontstyle )); if(foregroundColor!=null) { label.setForeground(foregroundColor); } if(backgroundColor!=null) { label.setBackground(backgroundColor); } if(border!=null) { label.setBorder(border); } return label; } }