TableHeader render

ChantalM

Mitglied
Will einem TableHeader von einem JTable eine Icon hinzufügen. Ich will nur das Icon im TableHeader hinzufügen, nichts anderes verändern. Aber den Code, den ich ausprobiert habe, setzt das Icon, aber das ganze Aussehen des TableHeader (Hintegrundfarbe, Borderfarben, Farbwechsel bei MouserOverEfekte etc.) ändern sich. Was kann ich machen, um das Aussehen des TableHeaders zu erhalten?


Code:
try{
 javax.swing.UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 SwingUtilities.updateComponentTreeUI(frame);
 UIManager.setLookAndFeel(UIManager.getLookAndFeel());
}catch(Exception e){}


...

class MyHeaderRenderer extends  DefaultTableCellRenderer {

        public Component getTableCellRendererComponent(
            JTable table,
            Object value,
            boolean isSelected,
            boolean hasFocus,
            int row,
            int column) {

        final Component rendererComp =
              super.getTableCellRendererComponent(table, value,
                    isSelected, hasFocus, row, column);
        if (rendererComp instanceof JLabel) {
          ((JLabel) rendererComp).setIcon(meinIcon);
        }
        return rendererComp;
      }
}
 
Ich verstehe dein Problem auch nicht, auch ich habe dieses Problem und meine Lösung ist nicht besonders gut.

Ich hatte einfach die Methode (Quelltext) aus der super Klasse Kopiert und in meinen eigenen Renderer eingefügt, alle nötigen Methoden inbegriffen.

Ich kann mir das ganze nur so Erklären das die Table nicht alle werte aus dem Renderer beziehen kann, so das Werte die durch die Vererbung zwar vorhanden, aber nicht erreichbar sind.
 
Zurück