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 :

JPanel dans un JScrollPane (qui ne défile pas bien)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut JPanel dans un JScrollPane (qui ne défile pas bien)
    Bonjour,
    j'ai un petit soucis avec un JScrollPane.
    J'ai une classe qui étend JFrame et qui dispose du code suivant dans son constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Crée un JScrollPane avec le panelGraphique dedans et initialise les Scrollbars
    JScrollPane scrollPane = new JScrollPane(panelGraphique, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    scrollPane.setOpaque(true);
    panelGraphique est un objet dont la classe étend JPanel. Mon panelGraphique (JPanel) est donc dans mon scrollPane. Et ce panel graphique est définit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Constructeur
    public PanelGraphique() {
    super(new BorderLayout());
    setPreferredSize(new Dimension(600,600)); // taille modifiable si besoin pour résoudre mon problème
    }
    Mon soucis est : après le chargement d'un fichier dont j'affiche le contenu dans ce panelGraphique (avec la méthode paintComponent(Graphics g)), les barres du JScrollPane sont présentes, mais lorsque je les descend, le contenu devient totalement illisible. De plus, les barres ne me permettent pas de descendre tout en bas (pour afficher tout le texte). J'affiche le contenu du fichier sur le panelGraphique avec des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    g.drawString(...);
    g.fillRect(...);
    Quelqu'un aurait une idée ??

  2. #2
    Membre Expert
    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
    Par défaut
    Ce panelGraphique semble avoir ses propres méthodes de la famille paintZZ. Peut être que ces méthodes font mal leur travail ?

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Tente de faire un revalidate(). Il y peut-être un problème de mise à jour du graphique.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Dans ma méthode paintComponent(), je ne fais vraiment que des g.drawString() et g.fillRect(), je ne vois pas comment elle pourra mal faire son travail, mais si tu as une idée gifffftane, je t'écoute volontié.
    Et j'ai déjà essayé de faire un revalidate(), mais je ne sais pas trop où le faire, à la fin de ma méthode paintComponent() ?

    Il semblerait qu'il y aient des complications lorsqu'on essaie de mettre un JPanel dans un JScrollPane...

  5. #5
    Membre Expert
    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
    Par défaut
    Ah ce que je comprends tu changes le contenu, voire la taille de ton JPanel. Est-ce que tu peux vérifier si tu respectes bien ce qui est indiqué ici : Sizing a Scroll Pane, et Dynamically Changing the Client's Size ? (si tu confirmes que ça te concerne)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Merci pour vos réponses. Je viens de trouver.
    Ca marche nikel maintenant.
    En fait, à la fin du paintComponent(), j'ai rajouter ces lignes là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.setPreferredSize(new Dimension(x, y)); // remet la taille du panelGraphique à la taille du graphique dessiné
    this.repaint(); // raffiche le graphique à chaque paintComponent()
    this.revalidate(); // revalide la taille du panelGraphique

  7. #7
    Membre Expert
    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
    Par défaut
    Placer ces méthodes dans un paintComponent est très dangereux je trouve. Mais enfin, si ça marche... Amen. Touchons du bois. À chaque jour suffit sa peine.

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

Discussions similaires

  1. JScrollPane d'un TextArea qui ne défile pas
    Par mouss4rs dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 08/06/2012, 15h44
  2. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41
  3. Un JScrollPane qui ne scrolle pas !
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 30/09/2006, 23h54
  4. Query Contains dans Full-Text qui ne retourne pas de valeurs
    Par icebe dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/02/2006, 14h04
  5. [Swing] Un JPanel dans un JScrollPane
    Par Quintoff dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 08/01/2006, 12h44

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