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

Composants Java Discussion :

Pas de repositionnement de mes JLabel sur mon JPanel ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut Pas de repositionnement de mes JLabel sur mon JPanel ?
    Bonjour,


    Je rencontre actuellement un petit probleme quant au positionnement d'objets JLabel sur un JPanel : j'ai un Vector, contenant des objets de type NC (classe contenant un JLabel et un Point, representant les coordonnees).

    Je place mes JLabel sur le JPanel sans souci, puis, quand j'ai termine, serialize le Vector dans un fichier et quitte l'appliquation.
    Le probleme c'est que quand je re-ouvre le fichier, les JLabel sont bien ajoutes au JPanel mais leurs coordonnees ne sont pas du tout respectees : ils sont placees en haut, par defaut.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i=0 ; i<components.size() ; i++) {
    rightArea.add(Items.getJLabelNo(i));      // ajout des JLabel au JPanel
    Items.getJLabelNo(i).setLocation(Items.getCoordNo(i));    // repositionnement des JLabel dans le JPanel
    }

    Quelqu'un a une idee du probleme ?

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Juste une remarque de conception sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Items.getJLabelNo(i).setLocation(Items.getCoordNo(i))
    Cela signifie que Items contient une liste de JLabel et une liste de Point ?
    Il faudrait plutôt créer une classe qui contient un seul JLabel et son propre Point. Ensuite, pour appliquer la position au JLabel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maListe.get( i ).applyLocation()
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    Items.getJLabelNo(int) est une methode statique qui recupere un JLabel dans un NC...

    A quel objet s'applique la methode applyLocation ?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par zzzer Voir le message
    A quel objet s'applique la methode applyLocation ?
    A la classe qui gère un JLabel et son Point. C'est une conception un peu plus orientée objet.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    D'accord...

    Quoi qu'il en soit, je ne pense pas que le problème vienne de là, mais plutôt, je pense, d'un problème de rafraîchissement (type validate(), revalidate() ou repaint() ; mais j'ai déjà testé tout ça et rien à faire :/)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    Voici un code plus complet, soulevant exactement le meme probleme :

    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
    public class Main
    {
        public static JPanel jp;
        public static JFrame f;
        public static Vector components = new Vector<JLabel> ();
     
        public static void main(String[] args)
        {
            f = new JFrame();
            f.setExtendedState(JFrame.MAXIMIZED_BOTH);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
     
            components.add(new JLabel("toto"));
            components.add(new JLabel("tata"));
            components.add(new JLabel("tutu"));
     
            jp = new JPanel();
            jp.setBackground(Color.GREEN);
     
            for (int i=0 ; i<components.size() ; i++)
            {
                ((JLabel)components.get(i)).setLocation(i*50,i*50);
                jp.add((JLabel)components.get(i));
            }
            f.add(jp);
        }
    }

    Merci d'avance...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Présenter la fonction Debug à mes collègues sur mon projet PHP ?
    Par Oppenheimer dans le forum NetBeans Platform
    Réponses: 1
    Dernier message: 15/04/2013, 17h49
  2. Mes icones sur mon bureau sont toutes gelées
    Par DEV-10 dans le forum Windows Vista
    Réponses: 2
    Dernier message: 01/12/2010, 19h18
  3. [CR 8] je n'arrive pas a afficher mes données sur mon etat
    Par obydissonn dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 29/03/2010, 12h57
  4. Réponses: 8
    Dernier message: 29/11/2008, 14h32
  5. Réponses: 3
    Dernier message: 26/02/2007, 11h31

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