AIDER...MOI..................Probléme de Rafraichisement en JAVA
kenza_sana
Messages postés149Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention19 janvier 2009
-
22 févr. 2006 à 15:05
kenza_sana
Messages postés149Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention19 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é
A voir également:
AIDER...MOI..................Probléme de Rafraichisement en JAVA
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20117 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
}
}
kenza_sana
Messages postés149Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention19 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
kenza_sana
Messages postés149Date d'inscriptionmardi 14 octobre 2003StatutMembreDernière intervention19 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?????