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

Agents de placement/Fenêtres Java Discussion :

[JLabel] Redimensionnement auto non désiré


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut [JLabel] Redimensionnement auto non désiré
    Bonsoir à tous,

    Voilà la situation : une fenetre JDialog, dans laquelle j'ai une liste et à sa droite un JLabel. Quand je clique sur un élément de la liste, je souhaite afficher une image dans mon JLabel à droite. Au niveau de la disposition, ma liste et mon JLabel font tous deux la même taille (deux carrés identiques cotes à cotes) et l'alignement dans mon JLabel est au centre (horizontal et vertical). Le JLabel est rempli grâce à du code html pour afficher l'image (<html><body><img src="file:///Chemin/Vers/Mon/Image.png"></body></html>)

    Mon souci : quand je clique sur mon élément dans ma liste, il me charge bien l'image dans le JLabel mais m'agrandi mon JLabel automatiquement, de sorte que ca casse la mise en page de ma fenetre. Je me retrouve alors avec un JLabel qui a pris 2 fois sa hauteur d'origine environ. Pourtant l'image que j'affiche est plus petite que la taille d'origine (avant d'afficher une image) du JLabel.

    Voilà, je sèche Kel est le problème et comment faire pour que mon JLabel garde sa taille d'origine kelle que soit l'image que je lui demande d'afficher ?

    Sam.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Je n'ai toujours pas trouvé. Est ce que quelqu'un aurait une solution à me proposer ?

    Merci.

  3. #3
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Quel layout utilises-tu pour placer tes composants ?
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Et si tu fixes sa taille avec setPreferredSize?
    Hoooo!!
    Mais ce n'est pas qu'une question de moyens !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    J'utilise un GridBagLayout dans un JPanel pour contenir tous mes composants. Le tout étant dans ma JDialog.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Vlio : ma taille est fixée dans la fontion jbInit() mais cela ne change rien

  7. #7
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Petit test, au lieu de passer par le html pour afficher ton image, pourquoi ne pas utiliset la méthode setIcon, et la classe ImageIcon pour recupérer l'image ?
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    En fait c'est ce que je faisais avant, mais je n'y suis pas arrivé. Mais je vais réessayer...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Bien j'ai réessayé avec setIcon et ca marche. J'avais fait une erreur dans le chemin d'acces.

    En revanche, cela ne change pas le pb...L'image s'agrandi toujours...

  10. #10
    Membre averti
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Points : 444
    Points
    444
    Par défaut
    Ok, bon là, on peut avoir des bout de code ?
    Ce qui m'interesse l'initialisation et le placement de tes composants. Plus le code de la fonction qui charge la nouvelle image
    JHelp
    Pour avoir une réponse efficace :
    1) Soyez précis dans vos questions
    2) Choisssez bien votre forum
    3) Consultez la FAQ et la doc avant

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Ca marche. Alors voilà :

    La fonction jbInit() :

    Lbl_apercu est le label dans lequel je mets mon image.
    L_modelesCSS est la Jlist qui liste mes modèles. Quand je clique sur un element de cette liste, cela me mets à jour l'image dans Lbl_apercu.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
      private void jbInit() throws Exception {
     
        titledBorder5 = new TitledBorder(new EtchedBorder(EtchedBorder.RAISED,Color.white,new Color(178, 178, 178)),"");
        titledBorder6 = new TitledBorder("");
     
        this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        this.setModal(true);
        this.setResizable(false);
        this.setSize(500,500);
        this.getContentPane().setLayout(borderLayout1);
        this.centrer();
     
        Lbl_listeModeles.setFont(new java.awt.Font("Dialog", 1, 11));
        Lbl_listeModeles.setText("Liste des modeles disponibles :");
     
        jPanel1.setLayout(gridBagLayout1);
     
        Lbl_chemin.setText("Dossier destination :");
     
        jPanel1.setAlignmentX((float) 0.5);
     
        Lbl_nomPjt.setText("Nom du projet :");
     
        E_dossierDest.setText("");
        E_nomPjt.setText("");
     
        Lbl_apercu.setBackground(Color.white);
        Lbl_apercu.setBorder(titledBorder5);
        Lbl_apercu.setMaximumSize(new Dimension(46, 27));
        Lbl_apercu.setOpaque(true);
        Lbl_apercu.setPreferredSize(new Dimension(48, 27));
        Lbl_apercu.setToolTipText("Mise en page proposée par le modèle sélectionné");
        Lbl_apercu.setHorizontalAlignment(SwingConstants.LEFT);
        Lbl_apercu.setHorizontalTextPosition(SwingConstants.LEFT);
        Lbl_apercu.setIcon(null);
        Lbl_apercu.setIconTextGap(4);
        Lbl_apercu.setText("Aperçu");
        Lbl_apercu.setVerticalAlignment(SwingConstants.TOP);
        Lbl_apercu.setVerticalTextPosition(SwingConstants.TOP);
     
        B_parcourir.setMaximumSize(new Dimension(40, 20));
        B_parcourir.setMinimumSize(new Dimension(40, 20));
        B_parcourir.setPreferredSize(new Dimension(40, 40));
        B_parcourir.setHorizontalAlignment(SwingConstants.CENTER);
        B_parcourir.setHorizontalTextPosition(SwingConstants.CENTER);
        B_parcourir.setText("...");
        B_parcourir.addMouseListener(new NouveauProjet_B_parcourir_mouseAdapter(this));
       L_modelesCSS.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient"));
        L_modelesCSS.setBorder(titledBorder6);
        L_modelesCSS.setMinimumSize(new Dimension(0, 0));
        L_modelesCSS.setOpaque(true);
        L_modelesCSS.setPreferredSize(new Dimension(150, 100));
        L_modelesCSS.setRequestFocusEnabled(false);
        L_modelesCSS.setToolTipText("");
        L_modelesCSS.setPrototypeCellValue(null);
        L_modelesCSS.setSelectedIndex(-1);
        L_modelesCSS.setSelectionForeground(Color.black);
        L_modelesCSS.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        L_modelesCSS.addMouseListener(new NouveauProjet_L_modelesCSS_mouseAdapter(this));
     
        B_annuler.setText("Annuler");
        B_annuler.addMouseListener(new NouveauProjet_B_annuler_mouseAdapter(this));
     
        B_valider.setText("Créer");
        B_valider.addMouseListener(new NouveauProjet_B_valider_mouseAdapter(this));
     
        jPanel1.add(Lbl_chemin,  new GridBagConstraints(0, 4, 1, 2, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 35, 0, 0), 70, 0));
        jPanel1.add(E_dossierDest,  new GridBagConstraints(1, 4, 1, 1, 1.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 210, 0));
        jPanel1.add(E_nomPjt,  new GridBagConstraints(1, 3, 2, 1, 1.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 119), 0, 0));
        jPanel1.add(Lbl_nomPjt,  new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
                ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(3, 35, 0, 0), 0, 0));
        jPanel1.add(Lbl_apercu,  new GridBagConstraints(1, 2, 2, 1, 1.0, 0.0
                ,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 200, 200));
        jPanel1.add(B_parcourir,  new GridBagConstraints(2, 4, 1, 1, 1.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(2, 5, 2, 5), -11, -3));
        jPanel1.add(L_modelesCSS,  new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0
                ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 250, 225));
        jPanel1.add(Lbl_listeModeles,  new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
                ,GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(0, 5, 0, 0), 72, 4));
        jPanel1.add(B_annuler,  new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
        jPanel1.add(B_valider,  new GridBagConstraints(1, 6, 1, 1, 0.0, 0.0
                ,GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE, new Insets(0, 3, 0, 58), 12, 0));
        this.getContentPane().add(jPanel1,  BorderLayout.CENTER);
        jPanel1.add(jPanel2, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
     
        this.setVisible(true);
      }
    Fonction qui charge les images :

    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
     
      void L_modelesCSS_mouseClicked(MouseEvent e) {
     
        String selection = new String( L_modelesCSS.getSelectedValue().toString() );
        String chemin = new String( System.getProperty("user.dir") + "\\" + "Modeles" + "\\" + selection + "\\" + selection + ".png" );
     
        Lbl_apercu.setText("");
     
        // verification que le fichier image associe au modele existe
        // sinon affichage img par defaut
        File img = new File( chemin);
     
        if ( img.exists() ) {
          Lbl_apercu.setIcon( new ImageIcon(chemin) );
        }
        else {
          Lbl_apercu.setIcon( new ImageIcon( System.getProperty("user.dir") + "\\Modeles\\defaut.png" ) );
        }
     
      }

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    J'ai résolu mon problème en biaisant et en m'arrangeant gentiment avec le JLabel

    En fait au lieu de dimensionner mon JLabel à la taille que je voulais, je l'ai mis dans un JPanel et je l'ai dimensionné à sa taille par defaut : soit juste la taille du texte qu'il contient le tout centré dans le JPanel.

    De cette manière, le JLabel est agrandi d'autant quand je lui mets une image.

    Tant que mes images restent dans la taille definie par ma mise en page ca marchera sans pb et on n'y verra que du feu. Mais pour peu que l'utilisateur mette une image plus grande pour je ne sais qu'elle raison...boom ! Le pb revient

    Faute de mieux, je reste sur cette solution pour le moment !

    Merci à tous.

    @+++plux

    SamRay1024

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

Discussions similaires

  1. [Toutes versions] Numéro auto non désiré dans requète création de table
    Par JeanYves70 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/09/2013, 09h40
  2. [ACCESS 2003] arrêt non désiré dans le code
    Par Golzinne dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/02/2006, 23h24
  3. [C#] Redimensionnement auto pop up avec datagrid
    Par kalan dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/08/2005, 08h51
  4. [XSLT]Formatage de mon html non désiré
    Par Thanos76 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/06/2005, 12h16
  5. Effet secondaire non désiré de "float"
    Par davcha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/06/2005, 17h33

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