Bonjour,

Bon voila, dans une application que je développe en ce moment, j'ai un problème avec un JScollPane.
J'ai une sous fenetre avec à gauche un menu (un JPanel) et à droite un graphique JFreeChart (ChartPanel). Ces 2 composantes sont séparées par un JSplitPane non modifiable avec une position fixe à 210 pixels (largeurs de mon menu).
Quand je met directement mes deux panel dans le JSplitPane, je n'ai pas de problèmes, je peux reduire réaugmenter à volonter la taille de ma fenetre sans problème, la séparation du JSplitPane reviens à sa position.
Le problème est quand je met le menu dans un JScrollPane, une foie la largeur de la sous fenetre diminuée (en dessous de 210 pixels) la séparation du JSplitPane ne se remet pas en place.

voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
import java.awt.BorderLayout;
 
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
 
import org.jfree.chart.ChartPanel;
 
public class FenetreP extends JFrame { 
 
	public static Graphique panelGraph;
	PanelMenu pmenu;
	public static JPanel panelMenu;
	public static ChartPanel chartGraph;
	JDesktopPane desktopPane;
	JSplitPane splitPane;
	JButton valid;
	JInternalFrame internalframeScatter;
 
	private static final long serialVersionUID = 1L;
 
	public FenetreP(){
 
		/* Création de la fenetre principale */ 
		super(" ** Mon Appli ** ");
		this.setSize(1020,700);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		/* Mise en place du conteneur d'une sous-fenêtre */
		desktopPane = new JDesktopPane();
 
		/* Mise en place du splitPane */
		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
		splitPane.setEnabled(false);
		splitPane.setDividerSize(0);
		splitPane.setDividerLocation(210);
 
		JPanel contentPane = (JPanel)this.getContentPane();
		contentPane.add(desktopPane, BorderLayout.CENTER);
 
 
		pmenu = new PanelMenu();
		panelMenu = pmenu.Scattermenu; 
 
		JScrollPane sp = new JScrollPane(panelMenu, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
 
		panelGraph = new Graphique();
		chartGraph = panelGraph.getGraphique();
 
		/* On ajoute les éléments au splitPane */
		splitPane.add(sp);
		splitPane.add(chartGraph);
 
		/* Sous fenetre contenant le scatter plot */
		internalframeScatter = new JInternalFrame(" ** 1 ere Sous fenetre ** ", true, true, true, true);
		internalframeScatter.setSize(1000,660);
		internalframeScatter.setVisible(true);
 
		internalframeScatter.add(splitPane);
 
		desktopPane.add( internalframeScatter );
	}
 
}
En esperant avoir été clair

Zolotaya.