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 :

Ouverture d'un JDialog dans un thread


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 25
    Points
    25
    Par défaut Ouverture d'un JDialog dans un thread
    Bonjour à tous,

    Je suis entrain de créer une application dans laquelle j'ai besoin d'ouvrir une page internet dans une fenêtre Java (browser) tout en gardant mon application active.

    Du coup, après avoir cherché un peu partout, j'ai trouvé une librairie : ici
    J'ai réussit à ouvrir une page sur google, par contre, j'ai un autre soucis :
    Dans mon main, je crée une JFrame qui contient toute l'interface normale de mon application puis, je crée une JDialog contenant la page internet.

    Pour ça, je suis obligée de lancer un thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UIUtils.setPreferredLookAndFeel();
    NativeInterface.open();
    SwingUtilities.invokeLater(new Runnable() {
    	public void run() {
    		new BrowserGoogle();
    	}
     });
    NativeInterface.runEventPump();
    La classe BrowserGoogle héritant de JDialog.

    J'ai alors mes deux fenêtres qui se créent, mais la fenêtre principale (la JFrame contenant mon application) semble avoir un problème d'affichage (elle est toute blanche, et certains composants s'affichent uniquement lorsque je passe la souris dessus, ...).

    J'ai également l'exception suivante que je n'avais pas avant :

    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
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at com.jtattoo.plaf.BaseSliderUI.paintThumb(BaseSliderUI.java:321)
    	at com.jtattoo.plaf.BaseSliderUI.paint(BaseSliderUI.java:120)
    	at javax.swing.plaf.ComponentUI.update(Unknown Source)
    	at javax.swing.JComponent.paintComponent(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JLayeredPane.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
    	at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    	at javax.swing.RepaintManager.paint(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    	at java.awt.Container.paint(Unknown Source)
    	at java.awt.Window.paint(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$000(Unknown Source)
    	at java.awt.EventQueue$1.run(Unknown Source)
    	at java.awt.EventQueue$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    J'ai l'impression (mais je suis tout sauf sure) que le problème vient du fait qu'on lance la création de la JDialog dans un thread mais de toute façon, la librairie utilisée l'oblige.

    Avez-vous une idée ou au moins une explication à ce problème ?

    Merci d'avance !

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Je viens d'ailleurs de voir que si je met un affichage simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Suite");
    juste après le lancement du thread (après la ligne NativeInterface.runEventPump(); ), l'affichage ne s'affiche pas dans la console. Comme si le lancement du thread bloquait le main.

Discussions similaires

  1. Ouverture d'excel dans un thread
    Par defluc dans le forum Langage
    Réponses: 2
    Dernier message: 21/12/2010, 18h04
  2. Ouverture d'un dialog modal dans un thread
    Par MoonLightpf dans le forum wxPython
    Réponses: 7
    Dernier message: 05/02/2010, 13h05
  3. Ouverture d'une fenêtre non modale dans un Thread
    Par Cyrill26 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/02/2008, 17h30
  4. erreur d'un timer declaré dans un thread
    Par hak5 dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/04/2004, 09h20
  5. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25

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