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

Java Discussion :

Superposition de 2 JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 93
    Par défaut Superposition de 2 JPanel
    Bonjour,

    j'ai 2 jpanel superposés (même bounds), chaqu'un contient un jtable.
    quand je clique sur un bouton, jtable de panel 1 apparait , je veux que lorsque je clique dessus, un traitement se fait dans jtable de panel 2.
    Le problème que je rencontre : le click sur jtable 1 ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    table.addMouseListener(new MouseAdapter(){
    			public void mouseClicked(MouseEvent e){
    				 traitement
    				         }
    			 } );
    Même avec le debuggage, ja parviens pas au traitement.
    Si je désactive panel 2 tout marche bien.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    parce que l'évènement arrive au panel2. C'est normal. Tu as mis deux panel l'un au dessus de l'autre, un seul des deux reçois le traitement. Le problème, c'est la manière dont travaille le conteneur, il passe l'évènement au premier panel dont les bounds contiennent les coordonnées de la souris. Donc un des deux panels ne pourra jamais recevoir les events avec ta manière de faire.

    Pourquoi tu veux t'amuser à superposer 2 panels, c'est quoi le but?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 93
    Par défaut
    jpanel 2 contient un jtable2 et jpane1 juste au dessus et contient un formulaire de recherche et jtable1, le choix d'un élément fait apparaitre jtable1 contenant les éléments de BD répondant aux critères choisis, ce jtable s'ouvre sur jpanel2 , le clic sur une ligne fait cacher jtable1 et poursuivre le traitement sur jtable2 de jpanel2. C'est ce clic que je cherche.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ok, donc si je suis bien.

    tu veux faire apparaitre un panneau 1, et quand on a lancé une recherche dans ce panneau1, tu veux le cacher pour faire apparaitre le panneau2? Et pour fait ça, tu as juste superposé les panneaux en leur fixant les mêmes bounds?


    Ce n'est pas comme ça qu'il faut faire. Pour ce genre de chose, utilise un CardLayout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JPanel panel1=....;
    JPanel panel2=....;
    CardLayout cl = new CardLayout();
    conteneur.setLayout(cl);
    conteneur.add(panel1,"un");
    conteneur.add(panel2,"deux");
    cl.show(conteneur,"un");
    ....
    cl.show(conteneur,"deux"); // pour changer l'affichage

  5. #5
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 93
    Par défaut
    le panneau2 doit être toujours visible, c'est la panneau1 qui apparaît suite au lancement de recherche et disparaît suite au clic.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu veux vraiment dessiner deux tables l'une au dessus de l'autre? Ca va être illisible (en plus de tous les problèmes de bounding box associés)

    Tu es sur que ce que tu cherche, ce n'est pas une popup?

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

Discussions similaires

  1. superposition de JPanels pour accélérer l'affichage
    Par Virgile le chat dans le forum 2D
    Réponses: 8
    Dernier message: 10/08/2009, 05h42
  2. [JPanel] Affichage - superposition
    Par Alphonse87 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/08/2008, 10h11
  3. Superposition jPanel Cercle
    Par Matt112 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/11/2007, 19h16
  4. Superposition JPanel dans JTabbedPane
    Par rems033 dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 23/06/2007, 13h13
  5. JPanel, EmptyBorder et Superposition
    Par pigeonus dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/04/2007, 15h54

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