package org.jmeld.ui.swing; import javax.swing.*; import javax.swing.table.TableCellRenderer; import java.awt.*; public class MultiLineHeaderRenderer extends JLabel implements TableCellRenderer { private Icon icon; public MultiLineHeaderRenderer() { ListCellRenderer renderer; LookAndFeel.installColorsAndFont(this, "TableHeader.background", "TableHeader.foreground", "TableHeader.font"); LookAndFeel.installBorder(this, "TableHeader.cellBorder"); /* renderer = getCellRenderer(); if (renderer instanceof JLabel) { ((JLabel) renderer).setHorizontalAlignment(JLabel.CENTER); setCellRenderer(renderer); } */ setOpaque(false); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { String str; str = (value == null) ? "" : value.toString(); setText(str); setHorizontalAlignment(JLabel.CENTER); return this; } public void setIcon(Icon icon) { this.icon = icon; } /* public void paintComponent(Graphics g) { Rectangle r; int x; int y; super.paintComponent(g); if (icon != null) { r = getBounds(); x = r.width - icon.getIconWidth(); y = ((r.height - icon.getIconHeight()) / 2); icon.paintIcon(this, g, x, y); } } */ private static final long serialVersionUID = 101783804743496189L; }