Ich habe diese CustomCellRenderer
Klasse für die Verwendung in JXTreeTable
und JXTable
Objekte erstellt, da ich viele davon in meinem Projekt habe. So implementiert diese Klasse TreeCellRenderer
und TableCellRenderer
Schnittstellen:Benutzerdefinierter TableCellRenderer/TreeTableCellRenderer rendert keine Tabellenzellen
public class CustomCellRenderer extends JLabel
implements TreeCellRenderer, TableCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
setBackground(selected ? new Color(83,142,213) : Color.white);
setForeground(selected ? Color.white : Color.black);
//here is the icon setting code but it's irrelevant to my problem
setText(value != null ? value.toString() : "<null>");
return this;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(isSelected ? new Color(83,142,213) : Color.white);
setForeground(isSelected ? Color.white : Color.black);
setText(value != null ? value.toString() : "<null>");
return this;
}
}
Und hier ist der Code, wo ich den Renderer gesetzt:
jXTreeTableConsumos.setDefaultRenderer(Object.class, new CustomCellRenderer());
jXTreeTableConsumos.setTreeCellRenderer(new CustomCellRenderer());
Ich erwarte Hintergrund und Vordergrund werden blau und weiß jeweils, wenn eine Zeile ist ausgewählt. Allerdings kommt es nur an den Tree Tabellenzelle (erste Säule), während nur Vordergrund Änderungen und Hintergrund stillen weiß in den anderen Zellen in der gleichen ausgewählten Zeile:
Könnte jemand bitte sagen Sie mir, warum Zellen (das ist nicht Baumzellen) nicht ihre Hintergrundfarbe ändern?
kein entendi la pregunta – nachokk
I don verstehe auch nicht; Warum 'Objekt.Klasse'? _what_ ändert sich nicht zu blau? Bitte bearbeiten Sie Ihre Frage so, dass sie ein [sscce] (http://sscce.org/) enthält, das das von Ihnen beschriebene Problem aufweist. – trashgod