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

reinstancier un component dans un layout

8 réponses
Avatar
Zerovolt
Bonsoir à tous,

je cherche depuis des heures et je trouve pas comment faire.
je met dans un layout de fenetre plusieurs composant, et j'aimerais pouvoir
reinstancier un de ces composants.

par exemple:
Code:

label l = new label("toto");
maframe.add(l);

l = new label("titi");




et j'aimerai que ma frame affiche toto. je prend un label pour l'exemple
mais le cas est le meme pour 2 panels. jai essaye des validate() dans tous
les sens, sans succes. je ne peux pas faire de remove() et add() car pour un
gridlayout on ne sait pas placer un compo a l'endroit voulu.

que faire ?
merci d'avance

8 réponses

Avatar
Compuhelp
Zerovolt wrote:
Bonsoir à tous,

je cherche depuis des heures et je trouve pas comment faire.
je met dans un layout de fenetre plusieurs composant, et j'aimerais pouvoir
reinstancier un de ces composants.

par exemple:
Code:

label l = new label("toto");
maframe.add(l);

l = new label("titi");




et j'aimerai que ma frame affiche toto. je prend un label pour l'exemple
mais le cas est le meme pour 2 panels. jai essaye des validate() dans tous
les sens, sans succes. je ne peux pas faire de remove() et add() car pour un
gridlayout on ne sait pas placer un compo a l'endroit voulu.

que faire ?
merci d'avance


maframe.revalidate();

maframe.repaint();

--
Compu

Avatar
Zerovolt
maframe.revalidate();
maframe.repaint();


merci, mais cette methode n'existe pas si je veux le faire avec une JFrame.

Avatar
Compuhelp
Zerovolt wrote:

maframe.revalidate();
maframe.repaint();



merci, mais cette methode n'existe pas si je veux le faire avec une JFrame.




bah tu mets un jpanel dans ton jframe
et c'est ton jpanel qui contiendra tous les éléments...
faut contourner le pb un peu

--
Compu


Avatar
Zerovolt
bah tu mets un jpanel dans ton jframe
et c'est ton jpanel qui contiendra tous les éléments...
faut contourner le pb un peu


salut,

le probleme se pose de la meme facon avec des JLabels dans un JPanel

Avatar
Compuhelp
Zerovolt wrote:
bah tu mets un jpanel dans ton jframe
et c'est ton jpanel qui contiendra tous les éléments...
faut contourner le pb un peu



salut,

le probleme se pose de la meme facon avec des JLabels dans un JPanel




tiré tout droit de la doc java:

int getComponentCount();
void remove(int index);
Component add(Component comp, int index);

en gros je ferai:

maframe.add(new label("toto"));
int n = getComponentCount maframe.getComponentCount();
...
maframe.remove(n);
maframe.add(new label("titi"));
et eventuellement un revalidate/repaint si ca se réaffiche pas.

encore une fois, tout est marqué dans la doc et je n'ai rien inventé:
http://java.sun.com/j2se/1.4.2/docs/api/index.html

--
Compu


Avatar
Zerovolt
int getComponentCount();
void remove(int index);
Component add(Component comp, int index);

en gros je ferai:

maframe.add(new label("toto"));
int n = getComponentCount maframe.getComponentCount();
...
maframe.remove(n);
maframe.add(new label("titi"));


pas de probleme pour enlever et ajouter, ca ca marche tres bien avec remove
et add (que ce soit avec l'index, ou avec le compo direct)

et eventuellement un revalidate/repaint si ca se réaffiche pas.


voila mon probleme justement, ca se reaffiche pas, et j'ai fo meme faire des
revalidate, repaint sur mes labels, mon panneau, ma frame... il reaffiche
pas, jai aussi essaye validate et validateTree car je distingue pas trop les
differences entre toutes les methodes mais je suis toujours bloque.

Avatar
Zerovolt
maframe.remove(n);
maframe.add(new label("titi"));
et eventuellement un revalidate/repaint si ca se réaffiche pas.


c bon j'ai trouve mon probleme :)
le truc etant que jenlevais et remettait le meme label, mais j'ai du mal a
trouver ct bien enfoui.

merci pour ta patience, j'avais bien matte l'api mais bon ct pas ca le prob.

bonne journee a toi

Avatar
Compuhelp
Zerovolt wrote:

maframe.remove(n);
maframe.add(new label("titi"));
et eventuellement un revalidate/repaint si ca se réaffiche pas.



c bon j'ai trouve mon probleme :)
le truc etant que jenlevais et remettait le meme label, mais j'ai du mal a
trouver ct bien enfoui.

merci pour ta patience, j'avais bien matte l'api mais bon ct pas ca le prob.

bonne journee a toi




je me disais bien aussi...
chez moi ca marchait bien :)

--
Compu