Agencement de composants dans un JScrollPane

Ceubex Messages postés 72 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 11 janvier 2023 - 27 août 2010 à 22:40
Ceubex Messages postés 72 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 11 janvier 2023 - 1 sept. 2010 à 13:38
Bonjour,

J'ai un problème assez compliqué, je vais essayé de vous le simplifier pour être le plus clair possible. J'ai un JLabel lab1 avec un texte très long. Je fais les 2 JSplitPane suivant :
          Sdescription=new JPanel();
Sdescription.add(lab1);
                            panneau=new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,true,
SSintitules,Sdescription
);
setContentPane(panneau);

		panneau=new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,true,
SSintitules,lab1
);
setContentPane(panneau);

Le premier donne ça :

Le 2ième ceci :

Comme vous le voyez l'affichage n'est pas bon dans le premier, surement que le JPanel est trop grand.

Comment faire pour règler ce problème au niveau du premier code pour que le JLabel s'affiche de la même manière ?

PS:j'ai péché le texte au hasard sur le net

5 réponses

Kidator Messages postés 16 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 31 août 2010
27 août 2010 à 23:43
Salut,

Je pense que tu dois pour cela ajouter tout tes composants (boutons, ...) dans un JPanel, puis celui-ci dans un JScrollPane avec "new JScrollPane(panel)" puis ajouter le scrollPane au splitPane et ça devrait aller!

Bonne chance!

Kidator.
0
Ceubex Messages postés 72 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 11 janvier 2023
28 août 2010 à 00:01
Alors j'ai essayé la méthode:
		description=new JPanel();
description.add(lab1);
               Sdescription=new JScrollPane(description);

                            panneau=new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,true,
SSintitules,Sdescription
);
setContentPane(panneau);


Alors il y a du mieux, c'est comme sur la première image mais le texte commence au début et le reste est accessible. Par contre c'est encore sur une seule ligne.
J'ai essayé de supprimer le scroll horizontal et de mettre un FlowLayout mais rien à faire
0
Kidator Messages postés 16 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 31 août 2010
31 août 2010 à 17:40
Salut,
désolé j'avais oublié le positionnement; en fait lorsque tu ajoute les éléments au JPanel il faut
utiliser un layout du genre gridLayout... . Moi
j'utilise GridBagLayout voici un exemple qui devrait fonctionner pour toi :
(j'ai ecrit directement dsl s'il y a d ptits fautes)
JTextField textField = ...
JComboBox comboBox = ...
JButton button = ...

description=new JPanel(new GridBagLayout());
GridBagConstraints gBC = 
new GridBagConstraints();
gBC.gridx = 0;//colonnes
gBC.gridy = 1;//lignes
description.add(textField , gBC);
gBC.gridx = 1;
gBC.gridy = 0;
description.add(comboBox , gBC);
gBC.gridx = 1;
gBC.gridy = 1;
gBC.anchor = gBC.EAST;
description.add(button , gBC);
Sdescription=new JScrollPane(description);
panneau=new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT,true,
SSintitules,Sdescription);
setContentPane(panneau);


Bonne Chance.

Kidator.
0
Ceubex Messages postés 72 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 11 janvier 2023
31 août 2010 à 20:39
Et oué mais justement ça marche pas, le textField dépasse encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ceubex Messages postés 72 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 11 janvier 2023
1 sept. 2010 à 13:38
Au final pour le JLabel, j'ai trouvé une astuce : JLabel("<html>texte
");
Pour le textField il fallait simplement indiquer la preferedSize
0
Rejoignez-nous