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 de superposition avec JLayeredPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Par défaut Problème de superposition avec JLayeredPane
    Bonjour! Enfin Bonsoir ^^

    Je viens demander votre aide parce que j'ai un petit (gros?) soucis avec mon JLayeredPane. Je fais d'abord un bref topo. J'ai une fenêtre d'édition d'image qui comprend un ScrollPane. Dans ce dernier, j'ai créé un JLayeredPane.
    Ce dernier doit contenir un JLabel contenant l'image en cours d'édition ainsi que, par dessus, un JPanel contenant un rectangle.
    Mais malheureusement, je ne parviens pas à superposer ces deux panels... Ils se mettent côte à côte.
    Voici la portion de code qui me pose soucis:
    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
     
    		JScrollPane scrollPane = new JScrollPane();
    		final JLayeredPane centralPanel = new JLayeredPane();
    		scrollPane.setViewportView(centralPanel);
    		editor.getContentPane().add(scrollPane);
    		centralPanel.setLayout(new GridLayout(1,1));
     
    		//Afficher l'image que l'on souhaite éditer
    		imageLabel = new JLabel();
    		imageLabel.setIcon(new ImageIcon(getParentFrame().stock.getImageOriginale(path)));
    		imageLabel.setHorizontalAlignment(JLabel.CENTER);
    		imageLabel.setVerticalAlignment(JLabel.CENTER);
    		centralPanel.add(imageLabel);
    		centralPanel.setLayer(imageLabel, 0);
     
    		//préparer d'ores et déjà le panel qui contient le rectangle de sélection,
    		//mais ne pas l'afficher
    		selectionPanel = new SelectionPanel();
    		selectionPanel.setVisible(false);
    		centralPanel.add(selectionPanel);
    		centralPanel.setLayer(selectionPanel, 1);
    J'ai tenté de définir la profondeur via la méthode add, ou via la méthode SetLayer, mais ça revient au même. J'ai tenté de changer le layout de centralPanel, mais ça ne fait rien de bon non plus (j'ai testé Flow, Border, et Box Layout. BoxLayout déclenche une exception disant qu'un BoxLayout ne peut être partagé).

    Merci d'avance!

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Par défaut
    Personne pour m'aider? J'ai également tenté de mettre les deux panels à la même profondeur et de changer la position, mais ça ne change rien non plus, les deux panels restent côte à côte.

  3. #3
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Salut !

    Changer de layout ? écrire ton propre layout ?
    http://www.developpez.net/forums/d52...cement-layout/

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Par défaut
    Déjà, merci pour cette réponse! Mais comme écrit dans mon premier message, j'ai déjà tenté de changer le layout, mais ça empire presque les choses...

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 23
    Par défaut
    Bon je m'excuse de faire des posts multiples, mais je désespère...

    Le SelectionPanel se met à gauche et le imageLabel à droite, SAUF si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    centralPanel.add(imageLabel, 0);
    centralPanel.add(selectionPanel, 1);
    Là, ça s'inverse. Mais ça se superpose toujours pas...

    EDIT : En fait, je me demande si c'est pas le fait que ça soit un GridLayout qui fait ça. Je m'explique. Quand je met un GridLayout, ça fait deux panels de taille égale côte à côte. Quand je fais FlowLayout, ils sont toujours côte à côte, mais le SelectionPanel est tout petit, vu que le GridLayout met tous les composants à la taille de la case qui les contient.
    Est-ce qu'il n'y a pas un Layout permettant de tout mettre "au même endroit"? Ou d'imposer au GridLayout d'insérer les éléments dans la même case? C'est ce que je pensais avoir fait en définissant le GridLayout avec une ligne et une colonne. Mais de toute évidence, ce n'est pas le cas...

    EDIT² : Je viens de voir sur oracle que l'on doit définir le Layer avant d'ajouter le composant enfant au layeredPane parent. Donc j'ai inversé mes lignes de code. Mais... ça ne change rien! Je crois que je vais devenir dingue >.<
    Voici donc la tronche qu'a mon code maintenant :
    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
    		JScrollPane scrollPane = new JScrollPane();
    		final JLayeredPane centralPanel = new JLayeredPane();
    		scrollPane.setViewportView(centralPanel);
    		editor.getContentPane().add(scrollPane);
    		centralPanel.setLayout(new GridLayout(1,1));
     
    		//Afficher l'image que l'on souhaite éditer
    		imageLabel = new JLabel();
    		imageLabel.setIcon(new ImageIcon(getParentFrame().stock.getImageOriginale(path)));
    		imageLabel.setHorizontalAlignment(JLabel.CENTER);
    		imageLabel.setVerticalAlignment(JLabel.CENTER);
    		centralPanel.setLayer(imageLabel, 0);
    		centralPanel.add(imageLabel);
     
    		//préparer d'ores et déjà le panel qui contient le rectangle de sélection,
    		//mais ne pas l'afficher
    		selectionPanel = new SelectionPanel();
    		selectionPanel.setVisible(false);
    		centralPanel.setLayer(selectionPanel, 0);
    		centralPanel.add(selectionPanel);
    Autre remarque : en inversant l'ordre d'insertion de mes composants, leur position relative change. C'est-à-dire que le premier que j'insère sera celui qui sera à gauche.
    Je précise que oui mon panel est mis invisible, mais j'ai un bouton permettant de l'afficher.

  6. #6
    Membre expérimenté
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211

Discussions similaires

  1. [C#] Problème de superpositions d'éléments avec MDI
    Par Gold.strike dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/07/2006, 15h18
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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