Ich habe eine grundlegende Swing-JTable und die Anforderung ist, dass beim Klicken auf eine beliebige Zelle die gesamte Zeile hervorgehoben werden sollte und dass die Zelle, auf die geklickt wurde, eine andere Farbe haben sollte als der Rest der markierten Zeile.
Momentan habe ich isRowSelectionAllowed als true
Ich habe versucht, einen benutzerdefinierten TableCellRenderer zu verwenden, der wie folgt lautet:
%Vor%Aber das schien nicht zu funktionieren (ganze Reihe wurde rot markiert).
Ich habe auch versucht, die UIManager-Eigenschaft wie folgt zu setzen:
%Vor%Aber das scheint auch nicht zu funktionieren (auch wenn ich versucht habe, mit
einen Rahmen zu setzen) %Vor%das hat gut funktioniert)
Könnten Sie bitte irgendwelche Vorschläge machen, was ich tun muss?
Versuchen Sie Folgendes:
%Vor% Dann in der getTableCellRendererComponent
Dadurch wird die ausgewählte Zelle rot, der Rest der Reihe grün und der Rest der Spalte blau dargestellt. Hinweis: Bei der Zellenauswahl muss das Auswahlmodell einzeln sein, andere Auswahlmodelle können zu unvorhersehbarem Verhalten führen.
Aber das schien nicht zu funktionieren (ganze Reihe wurde rot markiert).
Sie müssen die Variable "hasFocus" überprüfen, nicht die Variable "isSelected".
Eine weitere Option anstelle mehrerer benutzerdefinierter Renderer zu erstellen (für den Fall, dass Sie in einer Tabelle Spalten mit unterschiedlichen Klassentypen haben) ist die Verwendung der Table Row Rendering Ansatz.
Tags und Links java swing jtable tablecellrenderer