[Layout]Meilleur choix pour une collection de JscrollPane en simple colonnes de hauteur fixe

Le
Daniel Moyne
Bonjour,
j'ai un JPanel dans lequel je veux placer une collection de JScrollPanes qui
contiennent chacun un JTree ; je veux que ces objets utilisent toute la
largeur du JPanel mais qu'ils soient de hauteur fixe.

J'ai pensé à GridLayout avec une seule colonne, mais si dans ce cas tous les
objets sont bien positionnés en une seule colonne, ils occupent toute la
hauteur du JPanel et donc se voient attribuer une hauteur variable ; par
exemple si je diminue la hauteur du JPanel tous les JScrollPanes reduisent
leur hauteur (identique) ; cela ne me convient pas !
Question : avec ce type de layout peut-on en plus imposer une hauteur fixe
pour chaque objet JScrollPane.

NetBeans propose en interne un layout qui bizarrement n'apparaît pas en
"Design", qui utilise un GroupLayout et qui correspond parfaitement à ce que
veux au final, mais apparemment complexe de mise en oœuvre ; ils procèdent
ainsi :
GroupLayout layout = new javax.swing.GroupLayout(JPanel);
JPanel.setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane,.
et quelque chose d'analogue avec :
layout.setVerticalGroup();

Désolé il m'est difficile de tout écrire ici.

Dans ce cas, contrairement au GridLayout, l'ajout du composant par
addComponent est très bizarrement placé ! ; mon problème est que surtout je
veux manipuler dynamiquement ces JScrollPanes : les placer où je veux par
rapport aux autres, les enlever, et les permuter ; l'alternative Netbeans me
semble difficile à utiliser dynamiquement car elle semble supposer tous les
composants connus !

Des idées ; merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yliur
Le #22232491
Le Wed, 09 Jun 2010 11:52:10 +0200
Daniel Moyne
Bonjour,
j'ai un JPanel dans lequel je veux placer une collection de
JScrollPanes qui contiennent chacun un JTree ; je veux que ces objets
utilisent toute la largeur du JPanel mais qu'ils soient de hauteur
fixe.

J'ai pensé à GridLayout avec une seule colonne, mais si dans ce cas
tous les objets sont bien positionnés en une seule colonne, ils
occupent toute la hauteur du JPanel et donc se voient attribuer une
hauteur variable ; par exemple si je diminue la hauteur du JPanel
tous les JScrollPanes reduisent leur hauteur (identique) ; cela ne me
convient pas ! Question : avec ce type de layout peut-on en plus
imposer une hauteur fixe pour chaque objet JScrollPane.

NetBeans propose en interne un layout qui bizarrement n'apparaît pas
en "Design", qui utilise un GroupLayout et qui correspond
parfaitement à ce que veux au final, mais apparemment complexe de
mise en oœuvre ; ils procèdent ainsi :
GroupLayout layout = new javax.swing.GroupLayout(JPanel);
JPanel.setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(...addGroup(layout.c reateSequentialGroup().addContainerGap().addComponent(jScrollPane,....
et quelque chose d'analogue avec :
layout.setVerticalGroup(...);

Désolé il m'est difficile de tout écrire ici.

Dans ce cas, contrairement au GridLayout, l'ajout du composant par
addComponent est très bizarrement placé ! ; mon problème e st que
surtout je veux manipuler dynamiquement ces JScrollPanes : les placer
où je veux par rapport aux autres, les enlever, et les permuter ;
l'alternative Netbeans me semble difficile à utiliser dynamiquement
car elle semble supposer tous les composants connus !

Des idées ; merci.





Si on besoin est très complexe (qu'est ce que "les placer où je v eux
par rapport aux autres ?"), tu peux définir ton propre gestionnaire de
placement, spécifique à cette fenêtre (c'est pas si méc hant que
ça :) ) .
Daniel Moyne
Le #22235371
Yliur wrote:

Le Wed, 09 Jun 2010 11:52:10 +0200
Daniel Moyne
Bonjour,
j'ai un JPanel dans lequel je veux placer une collection de
JScrollPanes qui contiennent chacun un JTree ; je veux que ces objets
utilisent toute la largeur du JPanel mais qu'ils soient de hauteur
fixe.

J'ai pensé à GridLayout avec une seule colonne, mais si dans ce cas
tous les objets sont bien positionnés en une seule colonne, ils
occupent toute la hauteur du JPanel et donc se voient attribuer une
hauteur variable ; par exemple si je diminue la hauteur du JPanel
tous les JScrollPanes reduisent leur hauteur (identique) ; cela ne me
convient pas ! Question : avec ce type de layout peut-on en plus
imposer une hauteur fixe pour chaque objet JScrollPane.

NetBeans propose en interne un layout qui bizarrement n'apparaît pas
en "Design", qui utilise un GroupLayout et qui correspond
parfaitement à ce que veux au final, mais apparemment complexe de
mise en oœuvre ; ils procèdent ainsi :
GroupLayout layout = new javax.swing.GroupLayout(JPanel);
JPanel.setLayout(layout);





layout.setHorizontalGroup(layout.createParallelGroup(...addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane,....
et quelque chose d'analogue avec :
layout.setVerticalGroup(...);

Désolé il m'est difficile de tout écrire ici.

Dans ce cas, contrairement au GridLayout, l'ajout du composant par
addComponent est très bizarrement placé ! ; mon problème est que
surtout je veux manipuler dynamiquement ces JScrollPanes : les placer
où je veux par rapport aux autres, les enlever, et les permuter ;
l'alternative Netbeans me semble difficile à utiliser dynamiquement
car elle semble supposer tous les composants connus !

Des idées ; merci.





Si on besoin est très complexe (qu'est ce que "les placer où je veux
par rapport aux autres ?"), tu peux définir ton propre gestionnaire de
placement, spécifique à cette fenêtre (c'est pas si méchant que
ça :) ) .


Le placement fais intervenir simplement l'ordre.
Yliur
Le #22242031
Le Thu, 10 Jun 2010 12:40:53 +0200
Daniel Moyne
Yliur wrote:

> Le Wed, 09 Jun 2010 11:52:10 +0200
> Daniel Moyne >
>> Bonjour,
>> j'ai un JPanel dans lequel je veux placer une collection de
>> JScrollPanes qui contiennent chacun un JTree ; je veux que ces
>> objets utilisent toute la largeur du JPanel mais qu'ils soient de
>> hauteur fixe.
>>
>> J'ai pensé à GridLayout avec une seule colonne, mais si dans ce cas
>> tous les objets sont bien positionnés en une seule colonne, ils
>> occupent toute la hauteur du JPanel et donc se voient attribuer une
>> hauteur variable ; par exemple si je diminue la hauteur du JPanel
>> tous les JScrollPanes reduisent leur hauteur (identique) ; cela ne
>> me convient pas ! Question : avec ce type de layout peut-on en plus
>> imposer une hauteur fixe pour chaque objet JScrollPane.
>>
>> NetBeans propose en interne un layout qui bizarrement n'apparaît
>> pas en "Design", qui utilise un GroupLayout et qui correspond
>> parfaitement à ce que veux au final, mais apparemment complexe de
>> mise en oœuvre ; ils procèdent ainsi :
>> GroupLayout layout = new javax.swing.GroupLayout(JPanel);
>> JPanel.setLayout(layout);
>>
layout.setHorizontalGroup(layout.createParallelGroup(...addGroup(layout.c reateSequentialGroup().addContainerGap().addComponent(jScrollPane,....
>> et quelque chose d'analogue avec :
>> layout.setVerticalGroup(...);
>>
>> Désolé il m'est difficile de tout écrire ici.
>>
>> Dans ce cas, contrairement au GridLayout, l'ajout du composant par
>> addComponent est très bizarrement placé ! ; mon problèm e est que
>> surtout je veux manipuler dynamiquement ces JScrollPanes : les
>> placer où je veux par rapport aux autres, les enlever, et les
>> permuter ; l'alternative Netbeans me semble difficile à utiliser
>> dynamiquement car elle semble supposer tous les composants connus !
>>
>> Des idées ; merci.
>>
>
>
> Si on besoin est très complexe (qu'est ce que "les placer où je veux
> par rapport aux autres ?"), tu peux définir ton propre gestionnaire
> de placement, spécifique à cette fenêtre (c'est pas si m échant que
> ça :) ) .
Le placement fais intervenir simplement l'ordre.




Est-ce que Box ne te permet pas de faire ce que tu veux ? Je ne sais
pas si les composants vont toute prendre la largeur (à voir), mais ils
seront au moins placés l'un en dessous de l'autre sans être dà ©formés
comme dans un GridLayout.
Daniel Moyne
Le #22250121
Yliur wrote:

Le Thu, 10 Jun 2010 12:40:53 +0200
Daniel Moyne
Yliur wrote:

> Le Wed, 09 Jun 2010 11:52:10 +0200
> Daniel Moyne >
>> Bonjour,
>> j'ai un JPanel dans lequel je veux placer une collection de
>> JScrollPanes qui contiennent chacun un JTree ; je veux que ces
>> objets utilisent toute la largeur du JPanel mais qu'ils soient de
>> hauteur fixe.
>>
>> J'ai pensé à GridLayout avec une seule colonne, mais si dans ce cas
>> tous les objets sont bien positionnés en une seule colonne, ils
>> occupent toute la hauteur du JPanel et donc se voient attribuer une
>> hauteur variable ; par exemple si je diminue la hauteur du JPanel
>> tous les JScrollPanes reduisent leur hauteur (identique) ; cela ne
>> me convient pas ! Question : avec ce type de layout peut-on en plus
>> imposer une hauteur fixe pour chaque objet JScrollPane.
>>
>> NetBeans propose en interne un layout qui bizarrement n'apparaît
>> pas en "Design", qui utilise un GroupLayout et qui correspond
>> parfaitement à ce que veux au final, mais apparemment complexe de
>> mise en oœuvre ; ils procèdent ainsi :
>> GroupLayout layout = new javax.swing.GroupLayout(JPanel);
>> JPanel.setLayout(layout);
>>





layout.setHorizontalGroup(layout.createParallelGroup(...addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane,....
>> et quelque chose d'analogue avec :
>> layout.setVerticalGroup(...);
>>
>> Désolé il m'est difficile de tout écrire ici.
>>
>> Dans ce cas, contrairement au GridLayout, l'ajout du composant par
>> addComponent est très bizarrement placé ! ; mon problème est que
>> surtout je veux manipuler dynamiquement ces JScrollPanes : les
>> placer où je veux par rapport aux autres, les enlever, et les
>> permuter ; l'alternative Netbeans me semble difficile à utiliser
>> dynamiquement car elle semble supposer tous les composants connus !
>>
>> Des idées ; merci.
>>
>
>
> Si on besoin est très complexe (qu'est ce que "les placer où je veux
> par rapport aux autres ?"), tu peux définir ton propre gestionnaire
> de placement, spécifique à cette fenêtre (c'est pas si méchant que
> ça :) ) .
Le placement fais intervenir simplement l'ordre.




Est-ce que Box ne te permet pas de faire ce que tu veux ? Je ne sais
pas si les composants vont toute prendre la largeur (à voir), mais ils
seront au moins placés l'un en dessous de l'autre sans être déformés
comme dans un GridLayout.


je vais essayer ; merci.
Francis JUGE-BOIRARD
Le #22310121
Bonjour,
Je ne fais ici qu'un retour d'expérience mais, selon moi, le plus simpl e
et d'utiliser un GridBagLayout.
- Il n'est pas si compliqué que cela.
- Pas trop gourmand non plus.
- Il permet un tas de chose du plus simple au plus complexe.

Je n'ai utilisé de Layout plus "simple" que pour des "morceaux"
d'interface vraiment très simple (JPanel de JButton GridLayout).
Interface contenant un barre d'outils flottante (BorderLayout prévu par
Swing) etc.
Dès qu'une interface dépasse le simplisimme, les GridBagLayout sont l a
réponse.
Daniel Moyne
Le #22312111
Francis JUGE-BOIRARD wrote:

Bonjour,
Je ne fais ici qu'un retour d'expérience mais, selon moi, le plus simple
et d'utiliser un GridBagLayout.
- Il n'est pas si compliqué que cela.
- Pas trop gourmand non plus.
- Il permet un tas de chose du plus simple au plus complexe.

Je n'ai utilisé de Layout plus "simple" que pour des "morceaux"
d'interface vraiment très simple (JPanel de JButton GridLayout).
Interface contenant un barre d'outils flottante (BorderLayout prévu par
Swing) etc.
Dès qu'une interface dépasse le simplisimme, les GridBagLayout sont la
réponse.


ce que je veux c'est placer mes jScrollPanes dans un seule colonne de
hauteur fixe avec une largeur = largeur du Panel ; avec GridLayout je peux
mettre mes jScrollPanes avec des espaces entre eux mais je voudrais aussi un
espace à droite et à gauche de chaque jScrollPane ; je vais essayer avec
GridBagLayout.
Publicité
Poster une réponse
Anonyme