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

Jpanel créé dynamiquement

2 réponses
Avatar
Pim
Bonjour tous.

Je pense que mon problème est simple:

ma classe est une extension de JApplet

Je crée une référence sur mon Container principal:
ContentPane cp = getContentPane().
//Je crée un premier JPanel
//disons pour simplifier avec un seul objet bouton

JPanel cadregauche =new JPanel();
JButton jb = new JButton("Bouton de Gauche");
cadregauche.add(jb);
//J'ajoute un deuxième JPanel après sa création
//contenant plusieurs objets disons 4 boutons
// mais c'est juste pour tester
JPanel cadredroit=new JPanel();
cadredroit.add(new JButton("bouton1");
cadredroit.add(new JButton("bouton2");
cadredroit.add(new JButton("bouton3");
cadredroit.add(new JButton("bouton4");

cp.add(cadregauche);
//cp.add(cadredroit);

Si je lance l'application je vois un bouton à gauche
et rien à droite.
Si maintenant je la relance en décommentant la dernière ligne :
cp.add(cadredroit);
évidemment, la partie droite apparait avec ses 4 boutons.

Maintenant je souhaite faire en sorte que la création totale de
mon cadre de droite soit dynamique en plaçant un
évènement sur mon bouton de gauche.

Bon je l'ai fait et l'évenement fonctionne mais
la fenêtre de droite n'apparait pas.

Puis une méthode ou une classe cadreDroit ou CadreDroit.

cadredroit()
{
//création du Jpanel cadredroit avec ses 4 boutons
}

init(){
//création du jpanel cadregauche avec son seul bouton
//ajout de l'évenement ActionListener au bouton
et dans la code du bouton : J'appel cadredroit.
Je souhaite que toutte création d'objets du cadre
droit soient dynamiques donc créés au moment du clic
sur le bouton du cadre gauche.
}

Malheureusement, ça ne marche pas car il semble qu'il y ai un problème
de raffraichissement.
En effet une fois que le code de init est créé, plus rien de part de
l'évènement.
Il faut donc une sorte de refresh() qui vienne de l'évènement lui-même
mais je ne trouve pas :O| et c'est bien triste .
Merci d'avance, si vous pouviez m'aider.

2 réponses

Avatar
Gabriel
"Pim" a écrit dans le message de news:

Bonjour tous.


Bonjour,

Bon je l'ai fait et l'évenement fonctionne mais
la fenêtre de droite n'apparait pas.


J'ai été confronté à ce genre de problème il y a peu de temps, essaye
d'appeler la méthode validate(); dans l'action de ton bouton, après
l'insertion du panel.

--
@+
Gabriel

Avatar
Pim
Le 02 Apr 2007 15:49:17 GMT,
Pim disait ceci :
Malheureusement, ça ne marche pas car il semble qu'il y ai un problème
de raffraichissement.
En effet une fois que le code de init est créé, plus rien de part de
l'évènement.
Il faut donc une sorte de refresh() qui vienne de l'évènement lui-même
mais je ne trouve pas :O| et c'est bien triste .
Merci d'avance, si vous pouviez m'aider.


Merci beaucoup, ça marche.
Genre le truc bête qu'il faut savoir :0<
J'ai un autre soucis un peut dans l'genre mais avec
des objets non graphiques, je vais reposter .
Encore merci à toi. :O)