Regenerer un panel suivant la selection d un node de JTree
bonjour mon probleme est le suivant :
j ai un frame qui se decompose en deux parties :
la premiere est la partie reservée à un JTree et la deuxieme doit etre un Jpane qui afficher des informations : ces infos sont relatives à la selection de chaque feuille de l arbre.
sauf que je bloque sur la methode de selction des noeuds de l arbre qui elle retourne un Void
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
tree.addTreeSelectionListener(new TreeSelectionListener(){
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if (node == null) {
System.out.println("node == null");
return;
}
Object nodeInfo = node.getUserObject();
if (node.isLeaf()) {
BookInfo book = (BookInfo)nodeInfo;
f (node.toString()== leafProvDisc){
System.out.println(leafProvDisc);
testURL = TreeDemo.class.getResource("tesProviderDisc.txt");;
displayURL(book.fichierURL);
return;
}
else
System.out.println("Autre");
displayURL(book.fichierURL);
}
else {
System.out.println("texte (not leaf) : "+node.toString());
return;}
}
}); |
j ai essayé de faire une methode qui retourne un JeditorPane et qui conditionne ce qu il va contienir à la selection de la feuille..sauf que je bloque sur la methode de selction. je sais pas comment faire voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
private JPanel buildContentPane(){
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
JPanel saisiePane = new JPanel();
saisiePane.setLayout(new FlowLayout()); // saisiePane c est le pane que je voudrai rendre reactif
JLabel textFieldLabel = new JLabel(textFieldString + ": ");
textFieldLabel.setLabelFor(textField);
//saisiePane.add(textFieldLabel);
//textField = new JTextField("TESTEUR");
//saisiePane.add(textField);
//textField.setActionCommand(textFieldString);
if (node == null) {
System.out.println("node == null");
return saisiePane;
}
Object nodeInfo = node.getUserObject();
if (node.isLeaf()) {
BookInfo book = (BookInfo)nodeInfo;
if (node.toString()== leafProvDisc){
textFieldLabel.setLabelFor(textField);
saisiePane.add(textFieldLabel);
textField = new JTextField("TESTEUR");
saisiePane.add(textField);
textField.setActionCommand(textFieldString);
System.out.println(leafProvDisc);
return saisiePane;}
else {
textField = new JTextField("L AUTRE");
saisiePane.add(textField);
textField.setActionCommand(textFieldString);
System.out.println("Autre");}}
else {System.out.println("texte (not leaf) : "+node.toString());
return saisiePane;
}
return saisiePane;} |
merci de votre aide :)