AIDER...MOI..................Probléme de Rafraichisement en JAVA

kenza_sana Messages postés 149 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 19 janvier 2009 - 22 févr. 2006 à 15:05
kenza_sana Messages postés 149 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 19 janvier 2009 - 25 févr. 2006 à 12:27
Bonjour j'ai un trés grand probléme...
Je programme un jeu pour cela j'utilise 5 classes dont une s'apple Grille (elle hérite d'un JPanel et apple la fonction(paint) pour l'affichage de l'image en fond)...et une autre "MaBarreMenue"(hérite de JMenuBar )...
Dc ds les autres classe pour pouvoire afficher la grille du jeu j'ai mi:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

JFrame frm=new JFrame();
Container contenu=frm.getContentPane();
contenu.setLayout( new BorderLayout());
MaBarreMenue bm=new MaBarreMenue(frm);
JPanel jeu=new JPanel();
jeu= new Grille(frm,"images/plateau.jpg"); //Image du JPanel
contenu.add( jeu,BorderLayout.CENTER);

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Le probléme maintenant est que quand je termine une partie je veut cliquier sur (Rejouer) dans la Barre de Menu et la grille s'initialise de nouveau : Pour cela j'ia mi dans la classe (MaBarreMenue)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
public void actionPerformed(ActionEvent e) {


Object source= new Object();
source=e.getSource();
if(source==rejouer)
{
JPanel pan=new JPanel();
pan=(JPanel)fenetre.getComponent(0);
pan.setVisible(false);
pan=new Grille(fenetre, "images/plateau.jpg");
pan.setVisible(true);
pan.validate();
fenetre.getContentPane().add(pan,BorderLayout.CENTER);
}
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sachant que j'utilise le Jbuilder quand j'éxécute il m'affiche l'exception suivante:
"java.lang.ClassCastException" pourtant ma page ne contient qu'un JPanel .....

SVP....Aidez moi je suis vraiment bloqué et ca dure depuis longtemps j'ia tt essayé

3 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
22 févr. 2006 à 17:13
ben c est pas vraiment compréhensible ton truc la !!
fenetre c est koi ??? ta frame, un panel??
de + j comprend pas bien tes instanciations quand tu fais
JPanel jeu=new JPanel();
jeu= new Grille(frm,"images/plateau.jpg"); //Image du JPanel
contenu.add( jeu,BorderLayout.CENTER);
pkoi tu fais pas
Grille jeu= new Grille(frm,"images/plateau.jpg"); //Image du JPanel
contenu.add( jeu,BorderLayout.CENTER);
idem pr dans ton action perfom

bref si tu veux avoir le type de ce que tu récupère fais un System.out.print de
fenetre.getComponent(0).getClass().getName()
data.getClass().getName()

si tu veux tomber sur ta grille a la limite t as qu a faire

Component[] tab = fenetre.getComponents();
for(int i=0;i<tab.length;i++){
if(Component[i] instanceof Grille){
//la tu peux faire ton cast sans te planter
}
}

+++ Toinou
0
kenza_sana Messages postés 149 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 19 janvier 2009
22 févr. 2006 à 23:10
Merci pour votre aide:
Pour la 1ére remarque vous avez raison c'est inutile de créer un JPanel je pourrai bien utiliser que la classe Grille(je l'ia mi et ca marche)..Mais pour l'autre partie j'ia mi exactement ce que vous avez dit mais il ne fait rien c'est ca le probléme surement le JPanel reprend les nouveaux paramétres mais il ne rafraichi pas la page(A propos c'est un JFrame )...
C'est ca le probléme de plus que je croi qu'il ne récupére pas les components car quand j'ai essayé l'affichage il ne récupére rien...
Mais le jeu marche bien il affiche le seul probléme quand je veut rejouer je doit réaficher la grille...C'est ca...
Merci ..Encore
0
kenza_sana Messages postés 149 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 19 janvier 2009
25 févr. 2006 à 12:27
Bnjour et ben j'ia changé le code ca marche mais le probléme est que ca rafraichi une seule fois...Et aprés ca n'a plus aucun effet c'est bizzare ca?????


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


Container p=fenetre.getRootPane().getContentPane();
Component comp=p.getComponent(0);
comp.setVisible(false);
comp=new JPanel();
comp=new Grille(fenetre, "images/plateau.jpg",joueur,true);
comp.setVisible(true);
p.add(comp,BorderLayout.CENTER);
p.repaint();


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

SVP aidez moi je n'arrive plus a comprendre pourquoi ca marche qu'une seule fois ????
MERCI
0
Rejoignez-nous