L'idée que j'ai eu pour solutionner mon problème de clic sur un tab a été d'associer le numéro d'onglet au Component placé dans le tab via la fonction setTabComponentAt.Citation:
Envoyé par croc14
C'est à dire que j'ai accroché à mon Component de tab un mouseListener. Ce mouseListener, en récupérant l'évènement mousePressed, n'avait qu'à appeler le getter de mon Component lui permettant d'avoir le numéro du tab appuyé puis à dire au JTabbedPane de switcher vers ce numéro.
Voici un p'tit bout de code exposant l'idée :
Après j'avais demandé sur les forums de Sun si il n'y avait pas une meilleure méthode que celle que je t'ai présentée et je n'ai pas vraiment eu de réponse à part : "ne le fait pas alors" :roll:Code:
1
2
3
4
5
6
7
8
9
10
11 MonComponent my_tab = new MonComponent( indice_tab ); my_tab.addMouseListener( this ); tabbedPane.setTabComponentAt( indice_tab, my_tab ); .... public void mousePressed( MouseEvent evt ) { MonComponent tab = (MonComponent)evt.getComponent(); tabbedPane.setSelectedIndex( tab_label.getTabNumber() ); }
Pour ce qui est de ton autre problème, d'après moi, ce qu'il faut retenir sur les JTabbedPane avec un tab personnalisé il ne faut pas démultiplier les tooltiptext et autres sur le tab (le Component) et via le JTabbedPane (via les méthode "set...At" )