У меня есть следующий рендерер, который отображает JTree с флажками, и я хочу добавить разные цвета и значок в разные узлы. Как мне это сделать? Пожалуйста, помогите мне. Заранее спасибо.java swing - добавить цвет к моему узлу JTree
class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer {
private CheckTreeSelectionModel selectionModel;
private TreeCellRenderer 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(TreeCellRenderer delegate, CheckTreeSelectionModel selectionModel) {
this.delegate = delegate;
this.selectionModel = selectionModel;
setLayout(new BorderLayout());
setOpaque(false);
checkBox.setState(Boolean.TRUE);
revalidate();
checkBox.setOpaque(false);
}
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);
}
}
setBackground(Color.pink);
removeAll();
add(checkBox, BorderLayout.WEST);
add(renderer, BorderLayout.CENTER);
return this;
}
}
Я ответил на один и тот же вопрос столько раз, я думаю, что пройду это. –
Тогда зачем вообще комментировать? Вместо этого проголосуйте, чтобы закрыть и привести дубликат ответа. По крайней мере, таким образом OP может ссылаться на дублирующий вопрос. – Adamski
Привет, друг, извините. Кажется, я задал повторный вопрос. На самом деле я не знаю, где искать тот же вопрос. Если он уже ответил, скажите мне, где я могу его получить. Прошу вас помочь мне. – Nilesh