Bonjour

Je souhaite dans un JTree afficher en plus du label classique du renderer un bouton. Mon probleme c'est que le bouton n'est pas cliquable.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
DefaultTreeCellRenderer treeCellRender = new DefaultTreeCellRenderer(){
 
			@Override
			public Component getTreeCellRendererComponent(JTree tree,
					Object value, boolean sel, boolean expanded, boolean leaf,
					int row, boolean hasFocus) {
 
				super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,
						row, hasFocus);
 
				Object userObject = ((DefaultMutableTreeNode) value).getUserObject();
 
				if (value == root){
					JPanel panel = new JPanel();
					panel.setOpaque(false);
					panel.add(this);
					JButton button = new JButton(IconManager.QUESTION_MARK);
					button.setContentAreaFilled(false);
					button.setBorderPainted(false);
					button.setMaximumSize(new Dimension(16,16));
					button.setMinimumSize(new Dimension(16,16));
					button.setPreferredSize(new Dimension(16,16));
					panel.add(button);
					FlowLayout layout = (FlowLayout) panel.getLayout();
					layout.setVgap(0);
					panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
					return panel;
				}
 
				if (value == transcriptionsNode){
					JPanel panel = new JPanel();
					//panel.setOpaque(false);
					panel.add(this);
					JButton button = new JButton(IconManager.QUESTION_MARK);
					button.setContentAreaFilled(false);
					button.setBorderPainted(false);
					button.setMaximumSize(new Dimension(16,16));
					button.setMinimumSize(new Dimension(16,16));
					button.setPreferredSize(new Dimension(16,16));
					button.setEnabled(true);
					button.addActionListener(new ActionListener(){
 
						@Override
						public void actionPerformed(ActionEvent e) {
							try{
								OSUtils.displayExplorer(DirectoryManager.getTranscriptionsDirectory(EcouteDescriptor.this.ecoute.getUpva()));
							} catch (IOException e1) {
								MyErrorPane.showPanel(MyErrorPane.ERROR,
										EcouteDescriptor.class,
										null,
										"",
										e1);
							}
 
						}
 
					});
 
					panel.add(button);
					FlowLayout layout = (FlowLayout) panel.getLayout();
					layout.setVgap(0);
					panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
					return panel;
				}
 
				if (userObject instanceof File){
					setText(((File) userObject).getName());
				}
				return this;
			}
 
 
 
		};
Qd je clique sur le bouton l'élémnet du Jtree est sélectionné mais le bouton ne déclenche pas l'action listener.
C'est le Jtree qui recoit l'event du clic et pas le bouton alors que je voudrais que ce soit l'inverse.

Merci
Benoit