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 :
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.
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);
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
Partager