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 :

Bloquer une fenêtre


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Bloquer une fenêtre
    Bonjour à tous,

    je cherche à bloquer une dialog... je m'explique:
    - j'ai une JFrame (Frame1)
    - à partir de cette frame1, j'appelle une deuxieme JFrame (frame2)
    - à partir de cette frame2, je veux lancer une JDialog.

    Le problème est que cette JDialog ne doit pas bloquer la frame1.
    Du coup, la JDialog est non modale et je désactive la frame2.
    ça fait bien ce que j'attends, mais du coup ça bloque pas le processus :

    Soit le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                System.out.println("AVANT DIALOG");            
                final MyDialog myDialog = new MyDialog(this); 
                myDialog.show();
                System.out.println("APRES DIALOG");
    Avec une dialog "normale", j'obtiens AVANT DIALOG et le processus est bloqué.
    Avec ma dialog "modifié", j'obtiens AVANT DIALOG et APRES DIALOG.

    Et j'aimerai obtenir comme avec une dialog "normale"!

    Quelqu'un a-t-il une idée?
    Merci d'avance.

    Alain

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Mon code de test :

    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
     
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JTextField;
     
     
    public class testFrame extends JFrame{
     
        public testFrame(){
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     
            getContentPane().setLayout(new FlowLayout());
     
            getContentPane().add(new JTextField(15));
     
            JButton newFrameButton = new JButton("New Frame");
            newFrameButton.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e) {
                    new SecondFrame().setVisible(true);
                }
            });
            getContentPane().add(newFrameButton);
     
            pack();
        }
     
        private class SecondFrame extends JFrame{
            public SecondFrame(){
                setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     
                getContentPane().setLayout(new FlowLayout());
     
                getContentPane().add(new JTextField(15));
     
                JButton dialogButton = new JButton("DIALOG");
                dialogButton.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        showDialog();
                    }
                });
                getContentPane().add(dialogButton);
     
                pack();
            }
     
            public void showDialog(){
                System.out.println("AVANT DIALOG");
     
                final MyDialog myDialog = new MyDialog(this); 
                myDialog.show();
                while(myDialog.isVisible()){
                }
     
                System.out.println("APRES DIALOG");
            }
        }
     
        private class MyDialog extends JDialog{
     
            private JFrame parentFrame;
     
            public MyDialog(JFrame parent){
                super(parent);
     
                this.parentFrame= parent;
                parentFrame.setEnabled(false);
     
                getContentPane().setLayout(new FlowLayout());
                JButton closeButton = new JButton("CLOSE");
                getContentPane().add(closeButton);
                closeButton.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        hide();
                        parentFrame.setEnabled(true);
                    }
                });
     
                pack();
            }
        }
     
        public static void main(String[] args){
            new testFrame().setVisible(true);
        }
    }

  3. #3
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Merci pour ta réponse, le problème c'est que je suis en java 1.4 !

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Alors en java 1.4 la réponse est encore plus simple : il n'y a pas de solution !

    Bon week-end quand même.

Discussions similaires

  1. QWebView : bloquer une fenêtre
    Par Kiwikipu dans le forum Qt
    Réponses: 0
    Dernier message: 23/05/2011, 12h19
  2. Bloquer une fenètre pendant chargement
    Par donnadieujulien dans le forum Débuter
    Réponses: 1
    Dernier message: 22/06/2008, 16h36
  3. Bloquer une fenêtre "active"
    Par tsharlz dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 10/11/2006, 12h43
  4. [SWING] JDialog - Bloquer une fenêtre (popup) "OnTop"
    Par Adrien22 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 17/05/2006, 15h02
  5. [HTML] bloquer la taille d'une fenêtre
    Par discogarden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/12/2005, 17h16

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