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 :

Actualiser une vue


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut Actualiser une vue
    Bonsoir,

    Je viens avec un problème assez ... bizarre, ça fait plus de trois heures que je me casse les dents dessus.

    Je vous place dans le contexte.
    J'ai une vue (classe créée par mes soins) qui contient des composants, JFrame, et JPanel sont de sortis.
    Je créé tout ce beau monde dans le constructeur de ma classe.

    J'ai un contrôleur rattaché à cette vue, ou du moins qui écoute tous ses faits et gestes.
    Cependant il m'arrive de varier la disposition de mes panels en fonction de variable.

    Sauf que si je créer ma vue, et donc que je la rend visible, si je modifie ma variable et que j'effectue un repaint() sur ma vue ça ne marche pas.
    Tout reste à sa place, et quand je le modifie statiquement la disposition fonctionne correctement.

    Voici ma classe, du mois un extrait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Fenetre_Partie extends JFrame {
     
    // Différentes variables
     
        public Fenetre_Partie(String modeDeJeu, boolean first) {
    ....
        }
    J'avais auparavant surcharger la classe paint(), mais je ne sais pas quoi mettre dedans.
    Car en fait c'est comme si je voulais reconstruire ma classe, mais cela reviendrait à détruire mon objet et le refaire ..

    Comment je peux faire ?

  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
    Appelle revalidate() sur le conteneur visible quand tu change des éléments qui s'y trouvent. Par exemple, si tu retire le JLabel d'un JPanel, tu dois appeler après panel.revalidate()

    paint/repaint ne recalcule pas la position des composants, car c'est appelé très souvent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut
    Merci, je vais tester dès que possible, en fait le revalidate, rappelle le constructeur ? Concrètement ? Car sur internet j'ai du mal à trouver des doc pour repaint et consort.

  4. #4
    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
    heu non, le revalidate recalcule la position des composant et les redessine :/

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut
    Donc si je fais un setText() sur un JLabel de mon JPanel, le revalidate de mon JPanel va me changer la valeur ?

  6. #6
    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
    Le revalidate du JPanel va éventuellement adapter le label pour que le texte soit visible. Si tu n'avais pas mis de texte au départ, il est possible que le JLabel avait une taille nulle par défaut.

Discussions similaires

  1. Problème d'actualisation d'une VUE
    Par ticain dans le forum SQL
    Réponses: 3
    Dernier message: 26/05/2015, 17h26
  2. Actualiser les vues dans une fenêtre
    Par fubra dans le forum Développement OS X
    Réponses: 0
    Dernier message: 31/10/2013, 12h14
  3. [Objective-C] Actualiser les données d'une vue a son chargement
    Par aliasc dans le forum Objective-C
    Réponses: 4
    Dernier message: 18/05/2011, 10h34
  4. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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