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 :

problème de rafraichissement d'une JFrame


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut problème de rafraichissement d'une JFrame
    Bonjour,
    je fais un petit programme où j'utilise un JFileChooser.
    dans un premier temps je cherche juste a afficher l'adresse complete du fichier que je souhaite ouvrir.
    le problème c'est que l'affichage de cette adresse ne se fait que quand je redimensionne me frame!!!
    est ce que quelqu'un connaitrait un moyen de règler ce petit souci?
    merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    personellement je ferais un Thread qui reactualise 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
    18
    19
    20
    class Actualise extends Thread
    	{
    	JFrame jFrame;
    	Actualise(JFrame jFrame)
    		{
    		this.jFrame=jFrame;
    		start();
    		}
    	public void run()
    		{
    		try
    			{
    			jFrame.repaint();
    			sleep(40);
    			}
    		catch(Exception e)
    			{
    			}
    		}
    	}

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Sans le code de View1, impossible de t'aider.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    voici le code de view1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class View1 extends JPanel {
     
        public View1(String str){
            super();
            this.setBackground(Color.white);
            JLabel label = new JLabel(str);
            this.add(label);
        }
    }

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Au delà du fait que ce code soit très moche d'un point de vue conceptuel, le problème rencontré ici n'est pas un problème d'affichage (repaint).
    Le problème est simplement que lors de l'ajout d'un composant graphique dans un autre composant déjà affiché, de nouveau calcul de la disposition graphiques des composants dans le layout n'est pas refait. Il faut donc le forcer via la méthode "validate" du panel.
    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panel.repaint();
    this.repaint();
    par
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Au delà du fait que ce code soit très moche d'un point de vue conceptuel, le problème rencontré ici n'est pas un problème d'affichage (repaint).
    Le problème est simplement que lors de l'ajout d'un composant graphique dans un autre composant déjà affiché, de nouveau calcul de la disposition graphiques des composants dans le layout n'est pas refait. Il faut donc le forcer via la méthode "validate" du panel.
    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panel.repaint();
    this.repaint();
    par
    a ca je conaisai pas c'est bon a savoir

  7. #7
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    bah dans tout les cas mon system marche normalement vus que repaint() redessinne tout les composant contenu par la JFrame recurcivement

    bon par contre ca redessine en permanence :s

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par unknow0 Voir le message
    bah dans tout les cas mon system marche normalement vus que repaint() redessinne tout les composant contenu par la JFrame recurcivement

    bon par contre ca redessine en permanence :s
    Non, ça ne marche pas dans tous les cas. Et niveau utilisation de ressources, c'est inutilement consommateur
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  9. #9
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    Merci beaucoup pour ton aide dinobogan!
    en ce qui concerne la mocheté du code je susi complétement d'accords!
    c'est juste un petit programme de test donc je me permet de rajouté ou supprimer des ligne de code pour voir le comportement du programme
    en tout cas merci beaucoup pour ton aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2007, 11h43
  2. [AJAX] Rafraichissement d'une liste en autocomplétion
    Par emilie1t dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/03/2007, 15h27
  3. [VB6]Problème de rafraichissement d'une combobox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2006, 16h58
  4. [JFrame]Rafraichissement d'une JFrame
    Par elspliffo dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 12/12/2005, 23h43
  5. Problème de "rafraichissement" dans une edit box e
    Par X-K4l1 dans le forum Windows
    Réponses: 1
    Dernier message: 23/08/2005, 11h49

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