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

EDT/SwingWorker Java Discussion :

Problème avec une JFrame


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 60
    Par défaut Problème avec une JFrame
    Bonjour,

    Dans mon application j'ai plusieurs fonctionnalité, et chaque fonctionnalité affiche une fenêtre pendant le déroulement affichant l'état d'avancement...

    Quand je lance une fonctionnalité à part, ça fonctionne très bien, quand je lance à partir de la méthode ActionPerformed, la fenêtre s'affiche et n'est pas rafraichi.

    J'ai créer un exemple très simple, et c'est vraiment un problème très embêtant.

    Classe principale
    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
    package is.testBug;
     
    import java.awt.BorderLayout;
     
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import javax.swing.JButton;
    import java.awt.Rectangle;
     
    public class Principale extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private JPanel jContentPane = null;
    	private JButton jButton = null;
     
    	/**
             * This is the default constructor
             */
    	public Principale() {
    		super();
    		initialize();
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize() {
    		this.setSize(300, 200);
    		this.setContentPane(getJContentPane());
    		this.setTitle("JFrame");
    		this.setVisible(true);
    	}
     
    	/**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(getJButton(), null);
    		}
    		return jContentPane;
    	}
     
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton();
    			jButton.setBounds(new Rectangle(85, 55, 121, 36));
    			jButton.setText("Clique here");
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					new Fenetre();
    					JLabel j=new JLabel("0");
    					add(j);
    					for(int i=0;i<100000000;i++)
    						j.setText(i+"");
    				}
    			});
    		}
    		return jButton;
    	}
     
    }
    Classe de la fenetre
    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
    package is.testBug;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
     
    public class Fenetre extends JFrame{
     
    	public Fenetre()
    	{
    		setBounds(200,200,200,200);
    		setVisible(true);
    		JLabel j=new JLabel("0");
    		add(j);
    		for(int i=0;i<100000000;i++)
    			j.setText(i+"");
    	}
    }
    Voila donc un exemple très simple de mon problème, je ne sais pas d'où ça peut provenir, j'ai créer la première classe avec Visual Editor, et la deuxième sans Visual Editor.

    Merci d'avance

  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
    On ne peux pas traiter les évènement graphique n'importe comment. Les traitements lourds doivent se faire en dehors de l'EDT, et les traitement graphique doivent se faire dans l'EDT

    Pourquoi ma barre de progression se remplit d'un coup ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 60
    Par défaut
    Si j'ai bien compris, je dois implémenté Runnable et mettre le traitement dans la méthode run().
    C'est ça ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 60
    Par défaut
    J'ai essayé, j'ai toujours le même problème, j'ai donc pas compris la réponse.
    Je vais devoir changer quel classe ? En faisant quoi ?

  5. #5
    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
    c'est expliqué dans la faq, tu doit utiliser des appels à invoke later, créer des thread annexes, etc. Y a des cours complet sur l'EDT sur dvp, suffit de chercher.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 60
    Par défaut
    Sérieux, j'ai du mal avec ça, j'arrive pas à faire fonctionné, j'arrive pas à comprendre ce qu'il y a dans la faq, j'ai essayé le code dans la faq mais ça ne fonctionne pas et il n'est pas complet.

    Je veux lancer une JFrame qui se rafraichis rapidement, à partir d'une autre JFrame, comment je pourrais faire cela ? Je vous prie de ne plus me demander pas d'aller chercher ailleurs, si vous avez des liens ou des explications ce serais plus intéressant, j'ai cherché avant de poster dans le forum.

    Merci

Discussions similaires

  1. Problème avec une UDF
    Par kanmaber dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/08/2004, 23h42
  2. [JBOSS] [Struts] Problème avec une application
    Par Tiercel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/07/2004, 13h50
  3. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56
  4. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

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