J'ai un JTree que j'essaie de modifier de façon à ce que la zone de sélection réelle pour tout nœud sélectionné s'étende de l'extrême gauche du JTree à l'extrême droite du JTree.
La plupart des exemples sur le web parlent d'étendre BasicTreeUI. À partir de là, il suffit de modifier les méthodes qui déterminent la zone de sélection, et c'est tout. Cependant, il faudra que le JTree - quelle que soit la plate-forme sur laquelle il fonctionne - utilise cette implémentation. Je ne pourrai pas vraiment tirer parti des diverses implémentations de l'interface utilisateur qui ciblent des plates-formes spécifiques, car j'utiliserai toujours BasicTreeUI (et non les implémentations Metal, Windows ou Aquia).
Idéalement, j'aimerais pouvoir prendre l'implémentation de BasicTreeUI actuellement installée sur le JTree et l'envelopper dans un wrapper personnalisé qui étend BasicTreeUI. À partir de là, je surchargerais toutes les méthodes et les déléguerais à l'interface utilisateur enveloppée, et j'effectuerais ma propre mise en œuvre de quelques méthodes lorsque cela est nécessaire pour recalculer la zone de sélection des nœuds. Cependant, la plupart des méthodes de BasicTreeUI sont protégées, donc je peux vraiment faire ça.
Je ne sais pas comment contourner ce problème... toute idée serait la bienvenue !