[Layout]Meilleur choix pour une collection de JscrollPane en simple colonnes de hauteur fixe
6 réponses
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 !
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.
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(...);
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.
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(...);
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.
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(...);
Le Wed, 09 Jun 2010 11:52:10 +0200 Daniel Moyne a écrit :
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);
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 wrote:
Le Wed, 09 Jun 2010 11:52:10 +0200
Daniel Moyne <daniel.moyne@neuf.fr> a écrit :
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);
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 Wed, 09 Jun 2010 11:52:10 +0200 Daniel Moyne a écrit :
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);
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 Thu, 10 Jun 2010 12:40:53 +0200 Daniel Moyne a écrit :
Yliur wrote:
> Le Wed, 09 Jun 2010 11:52:10 +0200 > Daniel Moyne a écrit : > >> 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); >>
>> 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.
Yliur wrote:
Le Thu, 10 Jun 2010 12:40:53 +0200
Daniel Moyne <daniel.moyne@neuf.fr> a écrit :
Yliur wrote:
> Le Wed, 09 Jun 2010 11:52:10 +0200
> Daniel Moyne <daniel.moyne@neuf.fr> a écrit :
>
>> 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);
>>
>> 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.
Le Thu, 10 Jun 2010 12:40:53 +0200 Daniel Moyne a écrit :
Yliur wrote:
> Le Wed, 09 Jun 2010 11:52:10 +0200 > Daniel Moyne a écrit : > >> 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); >>
>> 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
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.
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.
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
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.
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.
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.