Salut, j'ai créé mon propre moteur de rendu. Je veux que le fond soit bleu. J'ai mis la couleur de fond aussi bleu. Mais je ne sais pas quel est le problème que la couleur de fond de mon moteur de rendu semble toujours être blanche.Problème lors de la définition de la couleur d'arrière-plan dans mon TreeCellRenderer
J'ai posté le code. s'il vous plaît aidez là où je me trompe pour que la couleur de fond devienne blanche.
class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer {
private CheckTreeSelectionModel selectionModel;
private MyRenderer delegate;
private TristateCheckBox checkBox = new TristateCheckBox("", null, true);
public static final State NOT_SELECTED = new State();
public static final State SELECTED = new State();
public static final State DONT_CARE = new State();
public CheckTreeCellRenderer(MyRenderer delegate, CheckTreeSelectionModel selectionModel) {
this.delegate = delegate;
this.selectionModel = selectionModel;
setLayout(new BorderLayout());
setOpaque(true);
setBackground(new Color(207, 219, 234));
checkBox.setState(Boolean.TRUE);
checkBox.setOpaque(true);
checkBox.setBackground(new Color(207, 219, 234));
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
Component renderer = delegate.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
TreePath path = tree.getPathForRow(row);
if (path != null) {
if (selectionModel.isPathSelected(path, true)) {
checkBox.setState(Boolean.TRUE);
} else {
checkBox.setState(selectionModel.isPartiallySelected(path) ? null : Boolean.FALSE);
}
}
renderer.setBackground(new Color(207, 219, 234));
tree.setOpaque(true);
tree.setBackground(new Color(207, 219, 234));
this.setOpaque(true);
this.setBackground(new Color(207, 219, 234));
add(checkBox, BorderLayout.WEST);
add(renderer, BorderLayout.CENTER);
return this;
}
}
S'il vous plaît, pensez à publier un SSCCE –