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 :

[Swing] JPanel avec sa JScrollBar qui scrolle toute seule


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Swing] JPanel avec sa JScrollBar qui scrolle toute seule
    Bonjour à tous.

    Etats des lieux :
    Mon appli possède une interface graphique qui dérive d'un JPanel.
    Dans ce JPanel, il y a un JTabbedPane.
    Ce JTabbedPane est composé de plusieurs JPanel.
    A ces JPanel, j'y ai greffé une JScrollBar à moi (même problème avec celle par défaut). Les Janels sont composés de différents objets : boutons "oui/non", textfields, textarea, checkboxes, choicelist.
    Ces objets sont disposés de telle sorte qu'à "gauche" il y a un label JTextArea et à droite les objets en question.

    Le problème est le suivant. J'ai une fonction reset qui est la pour remettre à zéro les objets. Dans cette fonction, si on ne touche pas au label, le fait de sélectionner par exemple le bouton Oui, ou le bouton Non, de changer le texte de ces 2 boutons avec .setText(), ne fait pas bouger la scrollbar du JPanel.

    MAIS si on fait un .setText() sur le label JTextArea de gauche, alors la scrollbar descend à hauteur du dernier élément modifié, et je ne voudrais pas que cette dernière bouge.

    Si je fait remonter la scrollbar APRES modification du label, .getVerticalScrollBar().setValue(0);, elle remonte, MAIS elle redescent ensuite mystérieusement, toujours à hauteur du dernier élément modifié. On voit le scrolling a l'écran.

    Voici comment les objets sont incrustés dans le JPanel principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    		JPanel panel_label = new JPanel(new GridLayout(0, 1));
    		panel_label.add(label);
     
    		JPanel panel2 = new JPanel(new GridLayout(0, 2));
    		panel2.add(radio_button1, BorderLayout.WEST);
    		panel2.add(radio_button2, BorderLayout.WEST);
    		JPanel panel3 = new JPanel(new GridLayout(0, 2));
    		panel3.add(panel2, BorderLayout.WEST);
     
    		JPanel panel_all = new JPanel(new GridLayout(0, 2));
    		panel_all.add(panel_label, BorderLayout.NORTH);
    		panel_all.add(panel3);
    J'ai essayé tous les attributs possibles sur le label, rien n'y fait, la scrollbar "le suit", mais peut être faut il les mettre sur les petits JPanel.

    Si vous voyez une solution pour que cette JScrollBar ne bouge pas lorsque qu'on modifie le texte du label, n'hésitez pas à répondre.

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Bonjour.
    Petite question : tu parles de "label JTextArea"

    Cet objet est de classe JLabel ou bien JTextArea.

    Parce que s'il est de type JTextArea, quand tu fais setText(), peutetre ke tu lui passes le focus et donc le panel scrolle pour le montrer...
    Alors que pour le JLabel, le focus n'est pas transmis...

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Effectivement, le label était un JTextArea (choix du précédent stagiaire), et le passage à un JLabel ne pose plus ce problème de focus.

    Je ne sais pas s'il y a une raison particulière pour utiliser un JTextArea plutot qu'un JLabel, je vais vérifier et faire la modification de ces JTextArea si non.

    Merci

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    pourquoi le choix d'un JTextArea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    text_area.setLineWrap(true);
    text_area.setWrapStyleWord(true);
    text_area.setMargin(new Insets(5, 5, 5, 30));
    options qui ne sont pas disponibles sur les JLabel.

    Je vais voir s'il est possible d'échapper a ce problème de focus sur les JTextArea.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    J'ai à peu près le même problème que celui là :
    Dans un JScrollPane, j'ai plusieurs champs, qui font que la page est plus grande que ce que l'on peut afficher.
    Lorsque je mets à jour les champs du bas (qui sont des JTextArea), le scrollvertical descends à hauteur de celui-ci.

    J'ai essayé de remonter l'ascenceur à la fin de la mise à jour par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelConteneurConvention.getVerticalScrollBar().setValue(0);
    Mais celui-ci redescend tout de même sur le dernier champ.

    Il semblerait que le champ garde le focus.

    J'aurais voulu savoir si quelqu'un avait trouvé un moyen de bloquer le focus pour la méthode SetText ? Ou sinon, s'il y avait moyen de donner le focus à un autre élément ?

    Merci.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    élément de réponse ici
    http://www.developpez.net/forums/sho...pane+jtextarea
    ^^ après maintes recherches..

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/04/2007, 16h47
  2. [C#, .net 2.0] Scrollbar qui scroll toute seule
    Par SesechXP dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/09/2006, 17h11
  3. pc portable qui reboot tout seul
    Par pepper18 dans le forum Windows XP
    Réponses: 23
    Dernier message: 24/06/2006, 14h51
  4. [MFC] un CDialog qui disparait tout seul.
    Par tut dans le forum MFC
    Réponses: 4
    Dernier message: 21/06/2006, 14h01
  5. Ip qui change toute seul , je veux stoper..?
    Par loobstyle dans le forum Windows XP
    Réponses: 2
    Dernier message: 19/06/2006, 08h25

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