@@ -0,0 +1,2952 @@
+package com.seaglasslookandfeel.demo;%0A%0Aimport java.awt.BorderLayout;%0Aimport java.awt.Component;%0A%0Aimport javax.swing.Icon;%0Aimport javax.swing.ImageIcon;%0Aimport javax.swing.JComponent;%0Aimport javax.swing.JFrame;%0Aimport javax.swing.JLabel;%0Aimport javax.swing.JScrollPane;%0Aimport javax.swing.JTable;%0Aimport javax.swing.UIManager;%0Aimport javax.swing.border.Border;%0Aimport javax.swing.table.TableCellRenderer;%0Aimport javax.swing.table.TableColumn;%0Aimport javax.swing.table.TableColumnModel;%0Aimport javax.swing.table.TableModel;%0Aimport javax.swing.table.TableRowSorter;%0A%0Aimport sun.swing.table.DefaultTableCellHeaderRenderer;%0A%0Aclass JComponentTableCellRenderer extends DefaultTableCellHeaderRenderer/*SeaGlassTableHeaderUI.HeaderRenderer*/ %7B%0A    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,%0A        int column) %7B%0A        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);%0A        return /*this;*/(JComponent) value;%0A    %7D%0A%7D%0A%0Apublic class TestTables3 %7B%0A    public static void main(String args%5B%5D) %7B%0A        if (true) %7B%0A            try %7B%0A                UIManager.setLookAndFeel(%22com.seaglasslookandfeel.SeaGlassLookAndFeel%22);%0A            %7D catch (Exception e) %7B%0A                e.printStackTrace();%0A            %7D%0A        %7D%0A%0A        final Object rows%5B%5D%5B%5D = %7B %7B %22one%22, %221%22 %7D, %7B %22two%22, %222%22 %7D, %7B %22three%22, %223%22 %7D %7D;%0A        JFrame frame = new JFrame(%22Label Header%22);%0A        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);%0A%0A        String headers%5B%5D = %7B %22English%22, %22#%22 %7D;%0A        JTable table = new JTable(rows, headers);%0A        JScrollPane scrollPane = new JScrollPane(table);%0A%0A        TableModel tableModel = table.getModel();%0A        TableRowSorter%3CTableModel%3E sorter = new TableRowSorter%3CTableModel%3E(tableModel);%0A        table.setRowSorter(sorter);%0A%0A        Icon redIcon = new ImageIcon(TestTables3.class.getResource(%22/com/seaglasslookandfeel/images/gear.png%22));%0A        Icon blueIcon = new ImageIcon(TestTables3.class.getResource(%22/com/seaglasslookandfeel/images/Event.png%22));%0A%0A        Border headerBorder = UIManager.getBorder(%22TableHeader.cellBorder%22);%0A%0A        JLabel blueLabel = new JLabel(headers%5B0%5D, blueIcon, JLabel.CENTER);%0A        blueLabel.setBorder(headerBorder);%0A        JLabel redLabel = new JLabel(headers%5B1%5D, redIcon, JLabel.CENTER);%0A        redLabel.setBorder(headerBorder);%0A%0A        TableCellRenderer renderer = new JComponentTableCellRenderer();%0A%0A        TableColumnModel columnModel = table.getColumnModel();%0A%0A        TableColumn column0 = columnModel.getColumn(0);%0A        TableColumn column1 = columnModel.getColumn(1);%0A%0A        column0.setHeaderRenderer(renderer);%0A        column0.setHeaderValue(blueLabel);%0A%0A        column1.setHeaderRenderer(renderer);%0A        column1.setHeaderValue(redLabel);%0A%0A        frame.add(scrollPane, BorderLayout.CENTER);%0A        frame.setSize(300, 150);%0A        frame.setVisible(true);%0A    %7D%0A%7D%0A

Add test for icons in table headers.