Bonjour à tous !
Je n'en suis pas à mon 1er prog en Java, mais là j'avoue que je sèche, alors j'espère qu'un Java-Guru va passer par là
La conf. :
J'ai un JPanel qui contient un JTabbedPane, lui-même affichant un graph (JGraph) dans un JScrollPane.
Le but :
Je souhaite redéfinir la méthode paint(Graphics g) de mon JPanel afin d'afficher des informations en surcouche (juste un drawString ou un fillRect pour l'instant).
Le problème :
Tout se passe bien, sauf si je déplace les scrollBars du JScrollPane (alors que pourtant il n'est qu'un enfant de l'enfant du JPanel !).
J'affiche un rectangle rouge (pour test) en (0, 0) sur le JPanel ainsi :
Pour ceux qui ne voient pas à quoi ressemble un JTabbedPane : il y a une bordure de 3 ou 4 pixels.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 JPanel panelTabbedPane = new JPanel() { public void paint(Graphics g) { super.paint(g); g.setColor(Color.RED); g.fillRect(0, 0, 100, 50); } }; panelTabbedPane.setLayout(new BorderLayout()); panelTabbedPane.add(Main.tabbedPaneGraph, BorderLayout.CENTER);
Je me mets à bouger la scrollBar verticale comme un fou, le résultat :
- la partie du rectangle rouge se trouvant au-dessus de la bordure du JTabbedPane reste bien en place
- le reste du rectangle rouge, qui se trouve au-dessus de la partie scrollable, est déplacée en fonction du scroll, mais ce très rapidement, avant d'être correctement redessinée en (0, 0).
On dirait que l'affichage de la partie du rectangle se trouvant au-dessus de la partie scrollable est déplacé entre deux repaints si on bouge rapidement la scrollBar verticale.
J'aimerais que mon rectangle ne bouge pas du tout (puisqu'il n'est tout simplement pas sur le même "niveau" que la partie qu'on scroll !!!!)
Si quelqu'un connait un workaround à ce problème, je suis preneur !
Merci à tous, et bonne fin de journée !
Lideln
Partager