ingenior
Messages postés6Date d'inscriptionmardi 27 décembre 2011StatutMembreDernière intervention 9 avril 2013
-
9 avril 2013 à 23:08
Bonjour, j'ai un probleme dans le treeCellRender. je veux avoir un tree qui herite de Jtree avec des icons et des checkbox pour les feuilles. alors que la
fesabilité n'est realisable que pour l'un ou l'autre cas cad ou bien j'ai les
DefaultMitableTreeNode avec des icons ou bien les checkbox pour les
sous feuilles. j'ai utilisé le code suivant:
pour le traitement des icons:
public void iconRender(){
DefaultTreeCellRenderer myRenderer = new DefaultTreeCellRenderer();
myRenderer.setOpenIcon(IconsList.Photo.getIcon(15, 15));
myRenderer.setClosedIcon(IconsList.Photo.getIcon(15, 15));
tree.setCellRenderer(myRenderer);
}
pour les chechbox:
RenduComposant rc = new RenduComposant();
EditComposant ec = new EditComposant();
tree.setCellRenderer(rc);
tree.setCellEditor(ec);
class RenduComposant implements TreeCellRenderer{
public Component getTreeCellRendererComponent(JTree tree, Object obj, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){
DefaultMutableTreeNode dmtcr = (DefaultMutableTreeNode)obj;
if(dmtcr.getUserObject() instanceof JCheckBox){
JCheckBox toto = (JCheckBox)dmtcr.getUserObject();
return toto;
} else {
JLabel toto = new JLabel((String)dmtcr.getUserObject());
return toto;
}
}
}
class EditComposant implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){
}
public void cancelCellEditing() {
}
public Object getCellEditorValue(){
return this;
}
public boolean isCellEditable(EventObject evt){
if(evt instanceof MouseEvent){
MouseEvent mevt = (MouseEvent) evt;
if (mevt.getClickCount() == 1){
return true;
}
}
return false;
}
public void removeCellEditorListener(CellEditorListener l){
}
public boolean shouldSelectCell(EventObject anEvent){
return true;
}
public boolean stopCellEditing(){
return false;
}
public Component getTreeCellEditorComponent(JTree tree, Object obj, boolean isSelected, boolean expanded, boolean leaf, int row){
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)obj;
JCheckBox tata=(JCheckBox)dmtn.getUserObject();
tata.setEnabled(true);
return tata;
}
}