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 :

Probleme de positionnement d'un JDialog


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut Probleme de positionnement d'un JDialog
    Bonjour à tous,

    J'aimerai pouvoir afficher un JDialog relativement à un autre composant. Par exemple, lorsqu'un bouton est clique, le dialog doit s'afficher juste en dessous du bouton et si on clique une deuxieme fois, il se cache.
    Ceci tout en conservant la meme instance, sans en recreer une nouvelle à chaque clic.

    Le problème est que une fois sur deux, la dialog ne s'affiche pas au bon endroit (elle s'affiche dans le coin de l'ecran).
    J'ai l'impression qu'il y a un souci avec la methode JDialog.setLocation(), ou une fois sur deux, elle n'est pas prise en compte (peut etre un bug ?)

    Merci d'avance de votre aide.

    Voici le code :
    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
     
    public class TestDlgRelatvie {
     
        public static void main(String[] args) {
            final JDialog dlg = new JDialog();
            dlg.add(new JLabel("ABC"));
            dlg.pack();
     
            final JButton btn = new JButton("Show/Hide Dialog");
            btn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    if (dlg.isVisible())
                        dlg.setVisible(false);
                    else{
                        Point p = btn.getLocationOnScreen();
                        SwingUtilities.convertPointFromScreen(p,dlg);
     
                        dlg.setLocation(p.x,p.y + btn.getHeight());
     
                        dlg.setVisible(true);
                    }
                }
            });
     
     
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.add(btn);
            frame.pack();
            frame.setVisible(true);
     
        }
    }

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut
    Ok j'ai trouvé, c'est le SwingUtilities.convertPointFromScreen qui me mettait la zone
    Le code de positionnement de la dialog est donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     Point p = btn.getLocationOnScreen();
     dlg.setLocation(p.x,p.y + btn.getHeight());
    tout betement.

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

Discussions similaires

  1. [c#] Probleme de positionnement de panel
    Par Shakta dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/07/2006, 18h07
  2. [css] Problemes de positionnement et d'affichage
    Par Arnard dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 22/06/2006, 14h46
  3. probleme de positionnement
    Par Piotr Raspoutine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/06/2006, 15h02
  4. [CSS] probleme de positionnement
    Par Cube55 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 27/03/2006, 00h39
  5. probleme de positionnement
    Par nath-0-0 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/12/2005, 17h58

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