Je suis à la recherche d'un échantillon de code
permettant la personnalisation d'un composant JTree
à savoir l'incorporation de JPanel au lieu de l'icône
et du label dans le comportement par défaut.
Je pense qu'il faut implémenter soi-même un modèle
j'aimerais donc quelques informations utiles à ce sujet:
- exemples de code
- urls ?
J'imagine qu'il doit bien y avoir qqn qui s'est
déjà fait la main là-dessus..
Est-ce vraiment possible d'incorporer des JPanel
dans chaque noeud d'un arbre JTree ?
Cela permettrait d'ajouter presque n'importe quoi
dans chaque JPanel sous chaque noeud.
Merci d'avance pour votre aide et je vous souhaite
tous mes voeux pour la nouvelle année.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isammoc
Pour répondre à ta question, ce n'est pas le modèle qu'il faut réécrire (quoiqu'après, c'est à toi de voir) mais pour avoir des JPanel dans ton JTree, c'est un TreeCellRenderer que tu dois implémenter (regarde le DefaultTreeCellRenderer) et le TreeCellEditor (si tu veux que l'utilisateur puisse éditer pendant l'execution)
amuse toi bien ;-P
Isammoc
-- -- "john" a écrit dans le message de news:
Bonsoir tlm,
Je suis à la recherche d'un échantillon de code permettant la personnalisation d'un composant JTree à savoir l'incorporation de JPanel au lieu de l'icône et du label dans le comportement par défaut.
Je pense qu'il faut implémenter soi-même un modèle j'aimerais donc quelques informations utiles à ce sujet: - exemples de code - urls ? J'imagine qu'il doit bien y avoir qqn qui s'est déjà fait la main là-dessus..
Est-ce vraiment possible d'incorporer des JPanel dans chaque noeud d'un arbre JTree ? Cela permettrait d'ajouter presque n'importe quoi dans chaque JPanel sous chaque noeud.
Merci d'avance pour votre aide et je vous souhaite tous mes voeux pour la nouvelle année.
John.
Pour répondre à ta question, ce n'est pas le modèle qu'il faut réécrire
(quoiqu'après, c'est à toi de voir)
mais pour avoir des JPanel dans ton JTree, c'est un TreeCellRenderer que tu
dois implémenter (regarde le DefaultTreeCellRenderer)
et le TreeCellEditor (si tu veux que l'utilisateur puisse éditer pendant
l'execution)
amuse toi bien ;-P
Isammoc
--
--
"john" <john@tux.budhome.ch> a écrit dans le message de news:
pan.2005.01.06.20.39.34.432956@tux.budhome.ch...
Bonsoir tlm,
Je suis à la recherche d'un échantillon de code
permettant la personnalisation d'un composant JTree
à savoir l'incorporation de JPanel au lieu de l'icône
et du label dans le comportement par défaut.
Je pense qu'il faut implémenter soi-même un modèle
j'aimerais donc quelques informations utiles à ce sujet:
- exemples de code
- urls ?
J'imagine qu'il doit bien y avoir qqn qui s'est
déjà fait la main là-dessus..
Est-ce vraiment possible d'incorporer des JPanel
dans chaque noeud d'un arbre JTree ?
Cela permettrait d'ajouter presque n'importe quoi
dans chaque JPanel sous chaque noeud.
Merci d'avance pour votre aide et je vous souhaite
tous mes voeux pour la nouvelle année.
Pour répondre à ta question, ce n'est pas le modèle qu'il faut réécrire (quoiqu'après, c'est à toi de voir) mais pour avoir des JPanel dans ton JTree, c'est un TreeCellRenderer que tu dois implémenter (regarde le DefaultTreeCellRenderer) et le TreeCellEditor (si tu veux que l'utilisateur puisse éditer pendant l'execution)
amuse toi bien ;-P
Isammoc
-- -- "john" a écrit dans le message de news:
Bonsoir tlm,
Je suis à la recherche d'un échantillon de code permettant la personnalisation d'un composant JTree à savoir l'incorporation de JPanel au lieu de l'icône et du label dans le comportement par défaut.
Je pense qu'il faut implémenter soi-même un modèle j'aimerais donc quelques informations utiles à ce sujet: - exemples de code - urls ? J'imagine qu'il doit bien y avoir qqn qui s'est déjà fait la main là-dessus..
Est-ce vraiment possible d'incorporer des JPanel dans chaque noeud d'un arbre JTree ? Cela permettrait d'ajouter presque n'importe quoi dans chaque JPanel sous chaque noeud.
Merci d'avance pour votre aide et je vous souhaite tous mes voeux pour la nouvelle année.
John.
john
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une spécialisation(héritage) de DefaultMutableTreeNode. C'est donc parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre. Exemple: si un panneau contient qqpart un bouton, ce serait bien de pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer le chemin arborescent et récupérer le noeud sélectionné, mais comment gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur un des panneaux.
Merci d'avance et bon weekend! John.
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis
mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de
l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une
spécialisation(héritage) de DefaultMutableTreeNode. C'est donc
parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements
pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre.
Exemple: si un panneau contient qqpart un bouton, ce serait bien de
pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer
le chemin arborescent et récupérer le noeud sélectionné, mais comment
gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur
un des panneaux.
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une spécialisation(héritage) de DefaultMutableTreeNode. C'est donc parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre. Exemple: si un panneau contient qqpart un bouton, ce serait bien de pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer le chemin arborescent et récupérer le noeud sélectionné, mais comment gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur un des panneaux.
Merci d'avance et bon weekend! John.
Symon
Salut,
Comme tu l'as fait avec ton TreeCellRenderer pour afficher les données contenus dans ton arbre. Il faut que tu crée une classe qui implémentera TreeCellEditor pour pouvoir éditer ces données.
Il te suffit ensuite de brancher ton éditeur sur ton arbre grâce à sa méthode setCellEditor(TreeCellEditor tce) ...
Voici à quoi peut ressembler l'éditeur :
class MyBeautifullTreeEditor implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){ } public void cancelCellEditing() { }
public Object getCellEditorValue(){ return this; }
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 c = (JCheckBox)dmtn.getUserObject(); c.setEnabled(true); return editor; }
}
A+
Symon
john wrote:
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une spécialisation(héritage) de DefaultMutableTreeNode. C'est donc parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre. Exemple: si un panneau contient qqpart un bouton, ce serait bien de pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer le chemin arborescent et récupérer le noeud sélectionné, mais comment gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur un des panneaux.
Merci d'avance et bon weekend! John.
Salut,
Comme tu l'as fait avec ton TreeCellRenderer pour afficher les données
contenus dans ton arbre. Il faut que tu crée une classe qui implémentera
TreeCellEditor pour pouvoir éditer ces données.
Il te suffit ensuite de brancher ton éditeur sur ton arbre grâce à sa
méthode setCellEditor(TreeCellEditor tce) ...
Voici à quoi peut ressembler l'éditeur :
class MyBeautifullTreeEditor implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){ }
public void cancelCellEditing() { }
public Object getCellEditorValue(){
return this;
}
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 c = (JCheckBox)dmtn.getUserObject();
c.setEnabled(true);
return editor;
}
}
A+
Symon
john wrote:
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis
mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de
l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une
spécialisation(héritage) de DefaultMutableTreeNode. C'est donc
parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements
pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre.
Exemple: si un panneau contient qqpart un bouton, ce serait bien de
pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer
le chemin arborescent et récupérer le noeud sélectionné, mais comment
gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur
un des panneaux.
Comme tu l'as fait avec ton TreeCellRenderer pour afficher les données contenus dans ton arbre. Il faut que tu crée une classe qui implémentera TreeCellEditor pour pouvoir éditer ces données.
Il te suffit ensuite de brancher ton éditeur sur ton arbre grâce à sa méthode setCellEditor(TreeCellEditor tce) ...
Voici à quoi peut ressembler l'éditeur :
class MyBeautifullTreeEditor implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){ } public void cancelCellEditing() { }
public Object getCellEditorValue(){ return this; }
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 c = (JCheckBox)dmtn.getUserObject(); c.setEnabled(true); return editor; }
}
A+
Symon
john wrote:
Merci pour ta réponse Isammoc, j'ai pu la lire sur google et non depuis mon serveur news.. étrange, y'a un sacré délais.
J'ai donc facilement réussi a incorporer un JPanel dans chaque noeud de l'arbre JTree. J'ai implémenté un TreeCellRenderer et créé une spécialisation(héritage) de DefaultMutableTreeNode. C'est donc parfaitement fonctionnel, merci :)
Mais il reste une chose: j'aimerais pouvoir gérer les événements pouvant avoir lieu dans les panneaux de chaque noeud de l'arbre. Exemple: si un panneau contient qqpart un bouton, ce serait bien de pouvoir y répondre.
Je sais comment détecter les cliques souris sur chaque noeud, déterminer le chemin arborescent et récupérer le noeud sélectionné, mais comment gérer les événements ayant lieu à l'intérieur d'un noeud ? donc sur un des panneaux.