OVH Cloud OVH Cloud

[Swing] rechercher touls les TitledBorder

3 réponses
Avatar
pere.noel
j'ai une frame qui contient des JPanel, une JTabbedPane des TitledBorder
(dans un JPanel du tabbedpane).

je souhaite savoir s'il y a un algo simple pour rechercher, par exemple,
tous les TitledBorder de mon ui ?

ou, vaut-il mieux prévoir des constantes ?
--
une bévue

3 réponses

Avatar
Simon OUALID
Une bévue wrote:
je souhaite savoir s'il y a un algo simple pour rechercher, par exemple,
tous les TitledBorder de mon ui ?


Class Container, méthode Component[] getComponents().

http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Container.html#getComponents()

Il faut itérer la dessus en commençant par le Container de plus haut
niveau, puis partir en récursif si le Component que tu récupères est
aussi un Container (avec des "instance of"), et tu récupères au passage
des pointeurs sur les composants qui t'intéresses, ici les TitledBorder.

ou, vaut-il mieux prévoir des constantes ?


Oui, parceque l'algo présentée ci dessus peut prendre du temps pour
parcourir tout l'arbre de composants sur des IHM complexes, alors que ça
ne coute pas grand chose de garder des pointeurs sur ces composants au
moment ou tu construis ton ihm.

Pourquoi veux tu "retrouver" ces composants ?

++

Symon

Avatar
Syrion
Simon OUALID wrote:



Pourquoi veux tu "retrouver" ces composants ?



Parce qu'il s'est aperçu trop tard qu'il avait besoin d'atteindre ses
composants ? ;)

Avatar
pere.noel
Syrion wrote:

Simon OUALID wrote:



Pourquoi veux tu "retrouver" ces composants ?



Parce qu'il s'est aperçu trop tard qu'il avait besoin d'atteindre ses
composants ? ;)


non, pour changer leur couleur et police, je veux pouvoir le faire
collectivement.
l'ennui est que toutes les foreground (color) ne sont pas settées par
setForeground, il faut donc vérifier à qui on a affaire.

je me suis rendu compte aussi que lorsqu'on veut changer la couleur du
texte associé à un JRadioButton, ça set bien une couleur MAIS uniquement
celle du bouton enablé, pas celle quand il n'est pas enablé.

je n'ai pas d'expérience là-dessus, j'ai toujours laissé en noir...

mais là avec des painters j'ai un skin effect que l'utilisateur peut
modifier à sa guise.

d'où "l'obligation" de pouvoir le laisser aussi changer les couleurs et
polices de ceratins textes, collectivement.
--
une bévue