Ich folge einem Code, den ich gefunden habe (Ja, ich verstehe, wie es funktioniert) Es ist von hier: Code Link
Was ich versuche zu tun ist eine Zellen Vordergrundfarbe, wenn der Zellenwert auf "gelb" gesetzt ist
Hier ist mein Code:
%Vor%Und der Cell Renderer
%Vor%Das Problem ist, dass es sich nicht ändert, wenn ich irgendeinen Zellenwert auf "gelb" setze
Vielen Dank im Voraus!
Wird Ihr Renderer jemals überhaupt benutzt? Sie machen es zum Standard-Renderer für Zellen, die String enthalten, aber haben Sie die getColumnClass
-Methode Ihres Modells überladen, so dass es weiß, dass einige der Zellen Strings enthalten?
Also würde ich println-Anweisungen verwenden, um zu sehen, ob der Renderer überhaupt aufgerufen wird, und wenn nicht, würde ich die Methode meines Modells wie oben erwähnt außer Kraft setzen.
Bearbeiten 1
Auch Ihre if-Ergebnisse sind bestimmt seltsam. Im if-Teil ändern Sie den forground und im else ändern Sie den Hintergrund - macht keinen Sinn. Sie sollten wahrscheinlich komplementäre Änderungen im Zustand in den if gegenüber den else Blöcken, nicht orthogonalen Änderungen tun.
Bearbeiten 2
Zum Beispiel:
Fügen Sie diese Zeile hinzu:
%Vor%Die von getTableCellRendererComponent zurückgegebene Komponente muss undurchsichtig sein, damit Änderungen an der Hintergrund- und Vordergrundfarbe angezeigt werden. Das Problem ist hier auch ein anderes: Sie erweitern DefaultTableCellRenderer (das ist eine JComponent), aber Sie geben eine Komponente zurück, die die Methode "SetPoque" nicht definiert hat. Ich würde Ihren Code so umgestalten:
%Vor%Hier ist eine einfache Lösung, verwenden Sie TabaleCellRendere als innere Klasse.
%Vor%Tags und Links java swing jtable tablecellrenderer