TableCellRenderer rendert Integer/Boolean Felder nicht

B3ast

Mitglied
Hallo,

habe einen kleinen Colorpicker gebastelt, welche die jeweiligen gewählten Farben auf die Table anwenden soll, sodass Hintergrundfarbe (von geraden/ungeraden Spalten), Textfarbe (foreground), Selektions und Gridfarbe vom User ausgewählt werden. Dies habe ich über den CellRenderer realisiert, der einfach ungerade Zellen anders färbt.

Soweit, so gut. Das funktioniert auch alles. Nun habe das dazugehörige TableModel programmiert in welchem Zahlen, Boolean-Werte, Strings und Datumswerte vorhanden sind.

Wende ich nun das TableModel auf die Table an funktioniert der Renderer nicht mehr richtig. Alle String und Date-Felder werden richtig angezeigt, alle Integer und Boolean-Felder nicht. Es ist wie wenn der Cell-Renderer auf diese Felder nicht richtig funktioniert.

Habe leider nichts im Internet zu diesem Problem gefunden was genau den Grund dafür beschreibt. Könntet ihr mir das Phänomen erklären und beschreiben mit welcher Methode ich dem ganzen aus dem Weg gehe?

Danke schonmal!

Hier mein CellRenderer:
Java:
    private TableCellRenderer renderer;
    private ColorPicker cp;
    
    public TableRenderer(TableCellRenderer renderer, ColorPicker cp) {
        this.renderer = renderer;
        this.cp = cp;
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component c = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        
            if (row % 2 == 0) {
                c.setBackground(cp.getEvenBackground());
            }   else    {
                c.setBackground(cp.getUnevenBackground());
            }
            for (int i : table.getSelectedRows()) {
                if (row == i) {
                    c.setBackground(cp.getSelectionBackground());
                }
        }
        return c;
    }
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    18,2 KB · Aufrufe: 35

Enceladus271

Bekanntes Mitglied
Das wird wahrscheinlich an den Renderern liegen die du deinem Renderer im Konstruktor übergibst. Was werden denn da für Renderer übergeben?
 

B3ast

Mitglied
Das kann ich mir nicht vorstellen. Ich habe außerdem ein Testprogramm erstellt wo ich einen neuen CellRenderer geschrieben habe und dort war es exakt dasselbe. Das muss ein bekanntes Problem sein, allerdings komme ich nicht drauf wie man dieses löst.

Übergeben wird folgendes in der implementierenden Klasse:
Java:
        TableCellRenderer renderer = jTable1.getDefaultRenderer(Object.class);
        jTable1.setDefaultRenderer(Object.class, new TableRenderer(renderer, this));

EDIT: Nun habe ich mir deine Worte nochmal durch den Kopf gehen lassen. Ich setze den DefaultRenderer für Object.class, Boolean und Int sind aber garkeine Objekte >.<. Für Integer und Boolean kann ich mir einen StandardRenderer schnappen und es funktioniert! :)

Nun übergebe ich also, damit es funktioniert:
Java:
        TableCellRenderer renderer = jTable1.getDefaultRenderer(Object.class);
        TableCellRenderer intrenderer = jTable1.getDefaultRenderer(Integer.class);
        TableCellRenderer boolrenderer = jTable1.getDefaultRenderer(Boolean.class);
        jTable1.setDefaultRenderer(Object.class, new TableRenderer(renderer, this));
        jTable1.setDefaultRenderer(Integer.class, new TableRenderer(intrenderer, this));
        jTable1.setDefaultRenderer(Boolean.class, new TableRenderer(boolrenderer, this));
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D TableCellRenderer rendert einfach 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
_user_q Wie den Inhalt vom Spinner auf Integer überprüfen? AWT, Swing, JavaFX & SWT 15
W Swing JTextField nur für Integer AWT, Swing, JavaFX & SWT 2
R Integer to KeyEvent AWT, Swing, JavaFX & SWT 2
C Integer in ein Textfield schreiben. AWT, Swing, JavaFX & SWT 4
MiMa Integer Zahl in Textfield ausgeben AWT, Swing, JavaFX & SWT 12
D JTextField soll nur Integer als Eingabewert annehmen AWT, Swing, JavaFX & SWT 5
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
J Swing RowSorter für (negative) Integer / Floats - JTable AWT, Swing, JavaFX & SWT 5
jeppi Fonts: Schriftgrößen skalierbarer Fonts wirklich nur als integer möglich? AWT, Swing, JavaFX & SWT 5
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
R JTable mit Column die Icon und Integer enthält? AWT, Swing, JavaFX & SWT 3
J Integer aus Textdatei auslesen und in Variable speichern AWT, Swing, JavaFX & SWT 11
P Integer, Double, etc mit getTableCellRendererComponent AWT, Swing, JavaFX & SWT 6
G jButton Text zu Integer umwandeln // jLabel mit Counter auf AWT, Swing, JavaFX & SWT 16
R Double in der Tabelle statt String und Integer AWT, Swing, JavaFX & SWT 3
A nur Integer in JTextField AWT, Swing, JavaFX & SWT 5
G Integer in JTextField eingeben AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben