Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[NetBeans][Matisse]Ajout dynamique de composants swing

3 réponses
Avatar
Pierre Maurette
Bonjour,

(question posée sur developpez.com, forum "NetBeans & Sun Java Studio
Creator", et restée sans réponse)*

Je suis passé de JBuilder (fin de trial, et pour ne pas mourir idiot) à
NetBeans (5.0 puis 5.5 béta), c'est satisfaisant. Je trouve Matisse
très pratique, c'est pour cette raison que je ne voudrais pas en casser
l'intégration en faisant des trucs immondes.

Mon problème: j'ai un JPanel contenant des JRadioButton (dans un
ButtonGroup).
Nota: pour être concret, ça correspond à des lecteurs et des
partitions. La liste dépend de la machine, et l'utilisateur peut
choisir une sélection, par exemple ne proposer que les médias
amovibles.
Je dois donc afficher un nombre variable de JRadioButton, le JPanel
devant idéalement s'adapter. Dans une boucle qui parcours mes
JRadioButton, je veux faire des add() dans le JPanel et dans le
ButtonGroup, ou un équivalent.
A vrai dire j'ai une IHM satisfaisante sous C++ Builder, mais là je
n'avais pas les problèmes de Layout de Java.
Mon problème est donc de faire ça, ou plus exactement de le faire sans
trop casser Matisse.

Y a-t-il quelqu'espoir d'y parvenir ? Par exemple en fabiquant un
composant custom ?

Merci d'avance,

--
Pierre Maurette

3 réponses

Avatar
TestMan
Bonjour,

(question posée sur developpez.com, forum "NetBeans & Sun Java Studio
Creator", et restée sans réponse)*

Je suis passé de JBuilder (fin de trial, et pour ne pas mourir idiot) à
NetBeans (5.0 puis 5.5 béta), c'est satisfaisant. Je trouve Matisse très
pratique, c'est pour cette raison que je ne voudrais pas en casser
l'intégration en faisant des trucs immondes.

Mon problème: j'ai un JPanel contenant des JRadioButton (dans un
ButtonGroup).
Nota: pour être concret, ça correspond à des lecteurs et des partitions.
La liste dépend de la machine, et l'utilisateur peut choisir une
sélection, par exemple ne proposer que les médias amovibles.
Je dois donc afficher un nombre variable de JRadioButton, le JPanel
devant idéalement s'adapter. Dans une boucle qui parcours mes
JRadioButton, je veux faire des add() dans le JPanel et dans le
ButtonGroup, ou un équivalent.
A vrai dire j'ai une IHM satisfaisante sous C++ Builder, mais là je
n'avais pas les problèmes de Layout de Java.
Mon problème est donc de faire ça, ou plus exactement de le faire sans
trop casser Matisse.

Y a-t-il quelqu'espoir d'y parvenir ? Par exemple en fabiquant un
composant custom ?

Merci d'avance,


Bonjour,

Si vous avez un ButtonGroup c'est que vous ne pouvez sélectioner qu'un
élément parmis la liste en même temps (1 parmis N).

Pour un tel cas, pourquoi ne pas simplement faire utiliser une JList
tout simplement ?

Si vous désirez rendre tout ça plus "se*y", vous pouvez utiliser un
renderer dessus, voir par des exemples complets dispo en webstart sur :
http://www.jroller.com/page/santhosh/20050611#jlist_with_checkboxes
(lire les commentaires du billet pour plus d'amélioriations)

Au final, vous n'aurez donc plus qu'un seul JList (embarqué dans un
JScrollPane si besoin) à positioné dans Matisse.

Bon Swing !

A+
TM

Avatar
Pierre Maurette
Bonjour,

(question posée sur developpez.com, forum "NetBeans & Sun Java Studio
Creator", et restée sans réponse)*

Je suis passé de JBuilder (fin de trial, et pour ne pas mourir idiot) à
NetBeans (5.0 puis 5.5 béta), c'est satisfaisant. Je trouve Matisse très
pratique, c'est pour cette raison que je ne voudrais pas en casser
l'intégration en faisant des trucs immondes.

Mon problème: j'ai un JPanel contenant des JRadioButton (dans un
ButtonGroup).
Nota: pour être concret, ça correspond à des lecteurs et des partitions. La
liste dépend de la machine, et l'utilisateur peut choisir une sélection,
par exemple ne proposer que les médias amovibles.
Je dois donc afficher un nombre variable de JRadioButton, le JPanel devant
idéalement s'adapter. Dans une boucle qui parcours mes JRadioButton, je
veux faire des add() dans le JPanel et dans le ButtonGroup, ou un
équivalent.
A vrai dire j'ai une IHM satisfaisante sous C++ Builder, mais là je n'avais
pas les problèmes de Layout de Java.
Mon problème est donc de faire ça, ou plus exactement de le faire sans trop
casser Matisse.

Y a-t-il quelqu'espoir d'y parvenir ? Par exemple en fabiquant un composant
custom ?

Merci d'avance,


Bonjour,

Si vous avez un ButtonGroup c'est que vous ne pouvez sélectioner qu'un
élément parmis la liste en même temps (1 parmis N).

Pour un tel cas, pourquoi ne pas simplement faire utiliser une JList tout
simplement ?

Si vous désirez rendre tout ça plus "se*y", vous pouvez utiliser un renderer
dessus, voir par des exemples complets dispo en webstart sur :
http://www.jroller.com/page/santhosh/20050611#jlist_with_checkboxes
(lire les commentaires du billet pour plus d'amélioriations)

Au final, vous n'aurez donc plus qu'un seul JList (embarqué dans un
JScrollPane si besoin) à positioné dans Matisse.


Merci de votre réponse. Pour l'instant je n'y entrave que goutte.
J'étudie tout ça.

Bon Swing !


Mon problème est plus NetBeans/Matisse que Swing

Bonne journée

--
Pierre Maurette


Avatar
TestMan
Bonjour,

Bonjour,
<...>



Mon problème: j'ai un JPanel contenant des JRadioButton (dans un
ButtonGroup).
Nota: pour être concret, ça correspond à des lecteurs et des
partitions. La liste dépend de la machine, et l'utilisateur peut
choisir une sélection, par exemple ne proposer que les médias amovibles.
Je dois donc afficher un nombre variable de JRadioButton, le JPanel
devant idéalement s'adapter. Dans une boucle qui parcours mes
JRadioButton, je veux faire des add() dans le JPanel et dans le
ButtonGroup, ou un équivalent.
<...>



Bonjour,

Si vous avez un ButtonGroup c'est que vous ne pouvez sélectioner qu'un
élément parmis la liste en même temps (1 parmis N).

Pour un tel cas, pourquoi ne pas simplement faire utiliser une JList
tout simplement ?

Si vous désirez rendre tout ça plus "se*y", vous pouvez utiliser un
renderer dessus, voir par des exemples complets dispo en webstart sur :
http://www.jroller.com/page/santhosh/20050611#jlist_with_checkboxes
(lire les commentaires du billet pour plus d'amélioriations)

Au final, vous n'aurez donc plus qu'un seul JList (embarqué dans un
JScrollPane si besoin) à positioné dans Matisse.


Merci de votre réponse. Pour l'instant je n'y entrave que goutte.
J'étudie tout ça.


Pour permettre à selectionner 1 élément parmis N le plus classique est
une JList en Swing. Il vous suffit donc de construire un ListModel
(remplir par exemple un JListModel avec des String pour tester).

Si vous êtes habitué au MVC celà ne vous posera pas de problème, dans le
cas contraire je conseille la lecteur d'un bon bouquin sur Swing.

Le code que je vous ait indiqué dans le billet montre comment faire que
la liste ressemble à un ensemble de combobox gràce à un Renderer
réutilisable.

Bon Swing !
Mon problème est plus NetBeans/Matisse que Swing



Si vous savez comment construire ce dont vous avez besoin proprement
avec Swing, vous êtes sur le chemin pour le faire proprement avec
Matisse. Pour détailler dans le cas précis, vous posez un JList avec
Matisse ensuite vous remplissez un ListModel (DefaultListModel ou votre
composant métier) puis attribué la propriété model du JList à se modèle.

A+

TM