JTree

JTree - Java - Programmation

Marsh Posté le 09-05-2006 à 17:59:56    

Bonjour,
Voila j'ai creé une arborescence en java avec un JTree( defaultmodeltree)
Mais voila j'aimerais mettre des boutons ou des textfields aprés le texte d'un fils. Par exemple :
titi (noeud)
--tutu : [textfield] (fils de titi)
--toto : [textfield]
--tata
 
tutu et toto sont des fils de titi :-)
Voila si vous pouviez me donner un coup de main :-)
J'ai essayé à la brutal, je defini mon bouton, et quand je creer un new defaultmodeltree je l'inclu la, mais il m'affiche du texte à la place du bouton :S
 
Merci ^^

Reply

Marsh Posté le 09-05-2006 à 17:59:56   

Reply

Marsh Posté le 09-05-2006 à 18:03:22    

TreeCellRenderer :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-05-2006 à 18:16:23    

Oui mais non :p j'utilise deja pour modifier mes fonts etc... mais en aucun cas je n'ai trouvé le moyen de faire ce ke je veux (bon chui pas un pro donc y a surement moyen  :D  :D ), j'ai essayé avec, sa fait 2 jours que je suis dessus, et je commence a devenir fou  :fou:  :fou:  Chui sur que c'est tout simple mais jtrouve pas le truc  :sweat:  :sweat:


Message édité par denebj le 09-05-2006 à 18:19:01
Reply

Marsh Posté le 09-05-2006 à 18:40:26    

oui, mais cellRenderer par defaut hérite de JLabel. A toi de définit ton proprre CellRenderer héritant d'un autre JComponent, ou délégant en interne à un JTextField ou autre :o
 
Exemple :  
http://www.java2s.com/Code/Java/Sw [...] xample.htm


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-05-2006 à 18:48:14    

T as pas d'autre exemple ? :D :D paske je vois le principe, aprés pour le coder c'est autre chose pour moi :o :o

Reply

Marsh Posté le 09-05-2006 à 18:51:43    

Code :
  1. class CheckRenderer extends JPanel implements TreeCellRenderer {
  2.   protected JCheckBox check;
  3.   protected TreeLabel label;
  4.   public CheckRenderer() {
  5.     setLayout(null);
  6.     add(check = new JCheckBox());
  7.     add(label = new TreeLabel());
  8.     check.setBackground(UIManager.getColor("Tree.textBackground" ));
  9.     label.setForeground(UIManager.getColor("Tree.textForeground" ));
  10.   }
  11.   public Component getTreeCellRendererComponent(JTree tree, Object value,
  12.       boolean isSelected, boolean expanded, boolean leaf, int row,
  13.       boolean hasFocus) {
  14.     String stringValue = tree.convertValueToText(value, isSelected,
  15.         expanded, leaf, row, hasFocus);
  16.     setEnabled(tree.isEnabled());
  17.     check.setSelected(((CheckNode) value).isSelected());
  18.     label.setFont(tree.getFont());
  19.     label.setText(stringValue);
  20.     label.setSelected(isSelected);
  21.     label.setFocus(hasFocus);
  22.     if (leaf) {
  23.       label.setIcon(UIManager.getIcon("Tree.leafIcon" ));
  24.     } else if (expanded) {
  25.       label.setIcon(UIManager.getIcon("Tree.openIcon" ));
  26.     } else {
  27.       label.setIcon(UIManager.getIcon("Tree.closedIcon" ));
  28.     }
  29.     return this;
  30.   }


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-05-2006 à 19:33:54    

ok, jvais essayé de voir sa a mon taff demain ^^ j'espere que je vais y arriver :fou:  :fou:  
Merci ^^

Reply

Marsh Posté le 09-05-2006 à 23:24:31    

kad > tu es prié de pas sous-classer JPanel, merci :o

Reply

Marsh Posté le 09-05-2006 à 23:27:22    

spamafote, c'est l'exemple, j'ai bien précisé dans mon commentaire par délégation :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-05-2006 à 23:30:38    

Et puis le DefaultTreeCellRenderer hérite de JLabel :kaola:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-05-2006 à 23:30:38   

Reply

Marsh Posté le 10-05-2006 à 19:45:18    

mdr :p alors j'ai reussi a faire marcher le truc, en faisant un JPanel, mais mon trecellrenderer herite de JTextArea chez moi ^^
Par contre mes fils son constitué d'une phrase et d'une case à cocher, mais c'est tout le fils ui est editable, pas seulement la box, (les 2 sont dans un panel), vous aurize une idée commebt specifié que c'est QUE la box qui est editable ?

Reply

Marsh Posté le 10-05-2006 à 20:28:52    

denebj a écrit :

en faisant un JPanel, mais mon trecellrenderer herite de JTextArea chez moi ^^


 
[:totoz]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 10-05-2006 à 20:40:21    

koi k'eski y a :p Chui un peu bourrin niveau code mais bon :p fo pas avoir peur :D :D

Reply

Marsh Posté le 10-05-2006 à 20:40:22    

moi je vais faire hériter mon listRenderer de ApplicationMainFrame puisque c'est ça :o


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-05-2006 à 20:50:04    

Hé oh on se moque pas :o :o En plus c'est pas ma faute si j'aime pas le java :o :o

Reply

Marsh Posté le 11-05-2006 à 17:20:31    

Bon alors, maitenant j'ai reussi a mettre ma zone de texte (texfield, et un bouton a coté, avec du texte), tout ceci sur des fils.
Ces fils sont editables pour pouvoir ecrire dans le textfield, maintenant j'aimerais recuperer ce texte avec un evenement sur le bouton (tu clique => sa recupere le texte).
J'ai donc essayé de mettre un evenement sur l'arbre (de type JTree.addcomponentlistener) avec la souris (quand l'utilisateur clique). Mais le probléme c'est que mes boutons sont dans des panels, et je n'arrive pas à avoir l'evenement sur le bouton !!!!
Par exemple si je fais un getsource() , j'ai le droit a java.swing.jpanel[...] (il s'agit de ce que je recupere quand je clique sur mon fils ou il y a le bouton).

Reply

Marsh Posté le 15-05-2006 à 17:23:31    

Bon j'ai finalement trouvé ^^
Je souhaiterais savoir comment securisé mon JTextField, c'est à dire que j'aimerais que l'utilisateur ne puisse entrer que des chiffres, est-ce possible ?

Reply

Marsh Posté le 15-05-2006 à 17:24:44    

http://java.sun.com/docs/books/tut [...] field.html


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed