TableCellRenderer rendert einfach nicht!

Status
Nicht offen für weitere Antworten.

daNny

Aktives Mitglied
Hi ihr!

Ich bin so langsam am verzweifeln, weil ich einfach keinen Fehler finden kann.
Ich setze in einer JTable einen CellRenderer, der mir alle Strings einfach nur in rot darstellen soll (damit das Problem auf ein Minimum reduziert ist).

Habe also eine JTable erstellt, und sie wie folgt modifiziert:

Code:
jTable1.setDefaultRenderer(String.class, new RedStringTableCellRenderer());
String[][] data = { {"aaa", "bbb" }, { "ccc", "ddd" } };
String[]  cols = new String[] {"1", "2"};
DefaultTableModel tableModel = new DefaultTableModel(data, cols);
jTable1.setModel(tableModel);

Die Klasse RedStringTableCellRenderer sieht wie folgt aus:

Code:
public class RedStringTableCellRenderer extends JLabel implements TableCellRenderer {

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

        System.out.println("Hier meldet sich der Cellrenderer (wahrscheinlich nicht!");

        setText(value.toString());
        setFont(table.getFont());
        setForeground(Color.RED);
        setOpaque(true);

        return this;

    }

}

Doch der Renderer stellt alle Strings in der Tabelle einfach nicht in rot dar! Auch die Ausgabe, die als aller erstes in der Methode definiert ist, wird nie ausgegeben.
Ich habe jetzt schon so einiges ausprobiert, doch es will nichts klappen. Auch das Erweitern von DefaultTableCellRenderer funktioniert nicht.
Das Problem muss somit nicht am Renderer liegen, sondern eher daran, dass er nicht richtig registriert wird.

Hat einer ne Idee, woran das liegen bzw. was eine mögliche, (gern gemachte) Fehlerquelle sein könnte?
 

Ebenius

Top Contributor
Das liegt am Model. Das Default-Model behauptet nämlich, alle Spalten wären Object.class.

Probier mal das (musst natürlich noch herausfinden, welche Spalten String's sind):
Code:
DefaultTableModel tableModel = new DefaultTableModel(data, cols) {
  @Override
  public Class<?> getColumnClass(int columnIndex) {
    return String.class;
  }
};

Ebenius
 

daNny

Aktives Mitglied
Vielen Dank! Genau das wars ;)

Ich habe echt schon an meinem Verstand gezweifelt, weils bei nem alten Projekt von mir problemlos funktionierte... aber dort habe ich tatsächlich mit nem eigenen TableModel gearbeitet, welches nur Strings verwendete.

Na dann bin ich ja wieder ein wenig schlauer! :meld:


Danke nochmals!
 
G

Gast2

Gast
du kannst auch das machen

Code:
Table1.setDefaultRenderer(Object.class, new RedStringTableCellRenderer());


Code:
public class RedStringTableCellRenderer extends JLabel implements TableCellRenderer {

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

        System.out.println("Hier meldet sich der Cellrenderer (wahrscheinlich nicht!");

        if (value instanceOf String)
        {
        setText(value.toString());
        setFont(table.getFont());
        setForeground(Color.RED);
        setOpaque(true);
        }
        return this;

    }

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B TableCellRenderer rendert Integer/Boolean Felder nicht AWT, Swing, JavaFX & SWT 4
M Swing TableCellRenderer elegant anpassen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
C Swing TableCellRenderer: setText() vs. setIcon() AWT, Swing, JavaFX & SWT 5
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
U TableCellRenderer: Problem mit Timestamp/Date AWT, Swing, JavaFX & SWT 2
U TableCellRenderer UND prepareRenderer AWT, Swing, JavaFX & SWT 12
C Swing TableCellRenderer AWT, Swing, JavaFX & SWT 10
U TableCellRenderer und setBackground AWT, Swing, JavaFX & SWT 20
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
C Swing Problem mit TableCellRenderer in Verbindung mit TableRowSorter AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 3
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
S TableCellRenderer: JLabel-Background in JPanel AWT, Swing, JavaFX & SWT 7
R JTable mit TableCellRenderer AWT, Swing, JavaFX & SWT 10
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 2
S TableCellRenderer setForeground AWT, Swing, JavaFX & SWT 5
I Problem mit TableCellRenderer AWT, Swing, JavaFX & SWT 3
K TableCellRenderer Problem AWT, Swing, JavaFX & SWT 3
F TableCellRenderer wie umsetzen? AWT, Swing, JavaFX & SWT 2
D JTable TableCellRenderer AWT, Swing, JavaFX & SWT 2
J JTable und TableCellRenderer AWT, Swing, JavaFX & SWT 2
G TableCellRenderer Background variiert darstellen AWT, Swing, JavaFX & SWT 3
P TableCellRenderer mit einem TableRowSorter AWT, Swing, JavaFX & SWT 4
D TableCellRenderer PRoblem AWT, Swing, JavaFX & SWT 3
G TableCellRenderer soll ganze ausgewählte Zeile markieren AWT, Swing, JavaFX & SWT 2
S TableCellRenderer deaktivieren AWT, Swing, JavaFX & SWT 13
J TableCellRenderer AWT, Swing, JavaFX & SWT 5
S JTree mal anders (TableCellRenderer) AWT, Swing, JavaFX & SWT 6
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
T TableCellRenderer Problem AWT, Swing, JavaFX & SWT 6
B TableCellRenderer + JComboBoxen AWT, Swing, JavaFX & SWT 2
D JSF rendert XHTML zu früh AWT, Swing, JavaFX & SWT 5
K Eclipse Visual Editor rendert die Komponenten nicht richtig AWT, Swing, JavaFX & SWT 2
O LayoutManager pagelayout - Example läuft einfach nicht ! AWT, Swing, JavaFX & SWT 6
J JavaFX CSS einbinden - Wieso will das einfach nicht!!! AWT, Swing, JavaFX & SWT 1
D Sortierung in der einfach-verketteten Listen AWT, Swing, JavaFX & SWT 13
L JavaFX Wait/Sleep/postedDelay - Einfach nur warten AWT, Swing, JavaFX & SWT 4
D Swing JOptionPane verschwindet beim 2. Aufruf einfach so?? AWT, Swing, JavaFX & SWT 2
D JTable Columns wollen einfach nicht resizen AWT, Swing, JavaFX & SWT 5
D VE in Eclipse mag einfach nicht funktionieren AWT, Swing, JavaFX & SWT 5
L Applet In HTML einbinden klappt einfach nicht AWT, Swing, JavaFX & SWT 5
F Swing JTable Einfach-Selektion überschreiben AWT, Swing, JavaFX & SWT 4
T JPEG / Exif nur in einfach ... AWT, Swing, JavaFX & SWT 1
G Swing JTable will sich einfach nicht aktualisieren AWT, Swing, JavaFX & SWT 4
G JTabbedPane verschwinden einfach bei Paelaktualisierung AWT, Swing, JavaFX & SWT 7
T JTable SpaltenBreite will einfach nich klappen AWT, Swing, JavaFX & SWT 4
G KeyListener Problem in GUI (macht einfach nichts) AWT, Swing, JavaFX & SWT 2
A Ich kriege die Grössen einfach nicht auf die Reihe! AWT, Swing, JavaFX & SWT 6
P Die Farbe wird einfach nicht gesetzt :( AWT, Swing, JavaFX & SWT 5
B JList bleibt einfach mal stehen AWT, Swing, JavaFX & SWT 2
J JSeparator ist schüchtern. Will sich einfach net zeigen... AWT, Swing, JavaFX & SWT 4
R Ganz Einfach Frage AWT, Swing, JavaFX & SWT 2
R Ganz Einfach Frage AWT, Swing, JavaFX & SWT 3
M JScrollPane zeigt einfach keinen ScrollBar AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben