IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Problème affichage JLabel


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut Problème affichage JLabel
    Bonsoir.
    Voilà mon problème. Je souhaite faire la liste des fichiers contenu dans un répertoire donné.
    La liste est bien afite comme il faut. Tous les fichiers sont listés ..
    Mon problème est pour l'affichage. Je ne parvient pas à voir comment faire pour qu'à chaque nom de fichier, il y ait un retour à la ligne.
    Comme vous pouvez le voir sur l'image, je n'obtient guère plus qu'une vulgaire ligne difficile compréhensible.

    Les traits rouges sont pour marquer les retours à la ligne - qui n'existent pas bien malgré moi
    Voilà les scripts associés :
    Dans le init() de mon appliquette ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    panneauListeFichiers = new JPanel();
    LectureRepertoire listeFichiers = new LectureRepertoire( "." ) ;
    panneauListeFichiers.add( listeFichiers.afficherFichiers() ) ;
    getContentPane().add( panneauListeFichiers , "South" ) ;
    Les méthodes utilisées :
    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
     
    private void listerFichiers( ArrayList listeCompleteFichiers , String chemin )
    {
    File fichier = new File( chemin ) ;
    File[] listeFichiers = fichier.listFiles() ;
     
    for( int i = 0 ; i < listeFichiers.length ; i ++ )
    {
    if( listeFichiers [ i ].isDirectory() )
    ( listeCompleteFichiers , listeFichiers [ i ].toString() ) ;
    else
    listeCompleteFichiers.add( listeFichiers [ i ].toString() ) ;
    }
    }
     
    /**
     * Cette méthode permet d'afficher la liste des fichiers & sous-répertoires
     */
    public JLabel afficherFichiers()
    {
    String libelleFichier = new String() ;
     
    listerFichiers( listeCompleteFichiers , this.chemin ) ;
     
    libelleFichier = "" ;
    for( int i = 0 ; i < listeCompleteFichiers.size() ; i ++ )
    { libelleFichier = libelleFichier + listeCompleteFichiers.get( i ) + "\n" ; }
     
    JLabel labelLibelleFichier = new JLabel() ;
    labelLibelleFichier.setSize( 1000 , 500 ) ;
    labelLibelleFichier.setText( libelleFichier  ) ;
     
    return labelLibelleFichier ;
    }
    Merci par avance de votre aide
    @ tchaOo°

  2. #2
    Membre expérimenté Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Par défaut
    Apparemment ton problème est dans le gestionnaire de positionnement.
    Le positionnement par défaut est FlowLayout sauf erreur, et chaque fois que tu ajoutes un composant, il est positionné immédiatement à la droite du dernier ajouté (fonctionnement du FlowLayout).
    Tu devrais peut-être utiliser un gestionnaire de positionnement du type GridLayout pour le comosant dans lequel tu affiches les noms de fichiers.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    composant.setLayout(new GridLayout(listeCompleteFichiers.size(),1));
    avant d'ajouter tes JLabel

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Et bien, merci à toi

    En effet, en changeant ma façon de faire et en utilisant GridLayout, je m'en suis sorti.

    Ceci dit, j'ai un autre soucis de présentation.

    Voilà, j'ai 2 éléments dans mon appliquette.
    Je voudrais que le panneau d'édition prenne constamment 80% de la largeur disponible & que le JPanel prenne les 20% restant.
    J'ai procédé ainsi :
    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
    panneauEdition = new JEditorPane() ;
     
    panneauEdition.setSize( 
                  getContentPane().getWidth() - ( 20 / 100 * getContentPane().getWidth() ) , // = 80 %
                  getContentPane().getHeight() 
     
      ) ;
     
    getContentPane().add( panneauEdition , "East" ) ;
     
     
     
    panneauListeFichiers = new JPanel();
     
    panneauListeFichiers.setSize( 
                  getContentPane().getWidth() - ( 80 / 100 * getContentPane().getWidth() ) , // = 20 %
     
              getContentPane().getHeight() 
     
    ) ;
     
    LectureRepertoire listeFichiers = new LectureRepertoire( "." ) ;
     
    listeFichiers.afficherFichiers( panneauListeFichiers ) ;
    getContentPane().add( panneauListeFichiers , "West" ) ;
    Cela ne semble pas être correct puisque le JEP a une largeur fixe quelque soit la taille de l'appliquette, et le JPanel prend le reste de la largeur disponible.
    La largeur du JEP correspond à la largeur de l'appliquette à l'ouverture de celle ci après son chargement.
    Ce qui fait qu'à l'ouverture de l'appliquette le JEP prend toute la largeur jusqu'à ce que j'étire la fenêtre.

    Note : Je parle de fenêtre malgré que je développe une appliquette car je les visionne avec AppletViewer pour le moment

    Merci d'avance pour votre aide.

    @ tchaOo°

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Question bete : pourquoi ne pas utiliser une JList ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    La réponse ne sera pas spécialement plus intelligente : Je ne connais pas tout ^^
    Comme c'est évoqué, en quoi ça m'arrangerait ?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Car tu n'aurais justement pas a faire un layout manuel et outre le fait de disposer d'un mecanisme de selection au clavier/a la souris deja tout fait, tu peux en faire varier l'apparence (via un ListCellRenderer/DefaultListCellRenderer) facilement ainsi que la presentation (pour la faire s'afficher sur plusieurs colonnes comme dans l'explorateur Windows) si besoin.

    Note : il faut la mettre dans un JScrollPane pour beneficier du defilement automatique.

    Voir le didacticiel chez Sun ainsi que les utilisations avancees.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 27
    Par défaut
    Bien bien

    Merci, j'vais voir ce que je peux faire avec les JList ^^

    Tchu !

Discussions similaires

  1. Problème affichage tableau de JLabel
    Par frolonfr dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 04/03/2012, 23h54
  2. Problème d'affichage JLabel
    Par patriot dans le forum Général Java
    Réponses: 4
    Dernier message: 29/08/2010, 03h26
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo