Dashcircle - Dix de perdus, un de retrouvé

Informatique pratique, tutoriaux, vie pratique et maux de tête

Accueil Java2D et JOGL Récupérer tous les contrôles enfants d'un JComponent
Découvrez également http://www.dashcircle.com
Ou faites des rencontres sur un nouveau site de rencontre gratuit
ou un site de rencontres par affinités

En partenariat avec
Récupérer tous les contrôles enfants d'un JComponent PDF E-mail
(0 Votes)
Java2D et JOGL
Samedi, 20 Septembre 2008 01:42

Bonjour,

Il arrive que, pour une raison ou une autre, vous soyez amené en Java à effectuer des opérations sur tous les JButton, JMenu, etc. d'un objet JFrame.
Cela pourrait par exemple être un listing des champs afin d'imprimer un état ou par exemple écrire un fichier indiquant l'état d'une fenêtre Swing.

Dans ces cas-là, mais pas uniquement ceux-ci, vous cherchez donc à lister, énumérer tous les composants (JComponent) Swing présents dans votre fenêtre.

Pour ce faire, la technique est simple, et elle ne changera pas que vous développiez en .NET ou Java (la preuve, j'ai d'abord utilisé cette technique dans un formulaire .NET, pour afficher une liste de champs dont le contenu serait erroné) :

  1. D'abord, assurez-vous systématiquement que le composant à vérifier est valide (ni null, ni un quelconque état non valide)
  2. Écrivez une méthode récursive, qui prend en paramètre un JComponent et un objet Vector<JComponent> dans lequel recenser tous les composants
  3. Cette méthode ajoute le composant passé en paramètre, et s'appelle elle-même pour tous les composants qui sont enfants directs du composant en paramètre

Dans la pratique, ce code affiche le nom de tous les composants dans une classe FrameView :

    public void showCompChildren (JComponent comp) {
    System.out.println (comp.getName());
    for (int ind=0; ind<comp.getComponentCount(); ind++) {
        showCompChildren((JComponent)comp.getComponent(ind));
    }
    }

    public DesktopApplication1View(SingleFrameApplication app) {
        super(app);

        initComponents();
    showCompChildren(this.getFrame().getRootPane());

...

 

Vous voyez que ce n'est pas compliqué !

En cadeau

Un projet Netbeans illustrant l'article

Projet Netbeans Demo Component Children


Citer cet article sur votre site

Pour créer un lien vers cet article sur votre site,
copiez et collez le texte ci-dessous dans votre page.




Prévisualisation :


Powered by QuoteThis © 2008
LAST_UPDATED2
 

Discutez de ce sujet sur le forum. (0 posts)



Les articles populaires

On en parle sur le forum

dans Discuter des articles par jonn2, 16-06-10 00:12
dans Discuter des articles par admin, 09-06-10 00:29
dans Discuter des articles par melanie, 14-02-10 00:02

Qui est là ?

Nous avons 118 invités en ligne

Mots-clés