HELLPPPPPP !!!! Rafraichissement Affichage dans une application [Résolu]

Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
- - Dernière réponse : mimilavitrine
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
- 22 juin 2005 à 17:56
Bonjour a tous,



Je ne n'arrive pas a rafraichir une fenetre de type JFrame



Je cherche a deplacer des ImageIcon dans un tableau 2D 12,6 , sur les
lignes c'est a dire je place mon image en 0,3 et je voudrais quel
descende en 11,3

Pour cela j'ai crée un timer qui permet de faire descendre l'image sur
une 1 seconde d'une ligne or je n''arrive pas a rafraichir la fenetre
pour voir l'evolution de l'image dans le tableau et donc dans la
fenetre



voici mon code :

public class Jeux extends JFrame {



//---------------------------------------------

//

// Déclaration des variables de la classe

//

//---------------------------------------------

public int Hauteur 600, Largeur 300, X = 150, Y = 100;

public Scene scene; // la scene va créer la zone de jeux

public BriqueJeux brique, brique2; // brique de jeux peut etre etre déplacer

public Timer timer; // permet de gerer le jeux et la descente des briques

public ImageIcon [][] tab; // tableau de jeux

public boolean bool;

private static int temp = 1000; // temp pour le timer

public static JFrame fenetre ;







//---------------------------------------------

//

// Déclaration des constructeurs de la classe

//

//---------------------------------------------

public Jeux () // constructeur par defaut

{

// initialisation des données de la classe

scene = new Scene ();

tab = scene.getTjeux(); // recupération du tableau de jeux

//initialisation d'un tableau de type bloc d'image

brique = new BriqueJeux ();

tab[brique.getPosimg1().getX()][brique.getPosimg1().getY()] = brique.getImage1();

tab[brique.getPosimg2().getX()][brique.getPosimg2().getY()] = brique.getImage2();


/*tab[brique.getPosimg1().getX()+1][brique.getPosimg1().getY()] = tab
[brique.getPosimg1().getX()][brique.getPosimg1().getY()]; // deplace la
brique

// de la brique durant une seconde


tab[brique.getPosimg2().getX()+1][brique.getPosimg2().getY()] = tab
[brique.getPosimg2().getX()][brique.getPosimg2().getY()]; // deplace la
brique



*/



fenetre = new JFrame ("Jeux");

fenetre.setBounds(X,Y , 300 , 600);

fenetre.setLayout (new GridLayout (12, 6));



//j.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);

int y ;

for (int i = 0 ; i < 12; i++)

{

for (y = 0 ; y < 6; y++)

{



//j.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);



fenetre.add(new JLabel (tab[i][y]));

}



}

//fenetre.setContentPane(j);

pack();

fenetre.setVisible(true);

//this.addKeyListener(new choix());

choix chx = new choix(fenetre);

timer = new javax.swing.Timer(temp, new ActionListener()

{

public void actionPerformed(ActionEvent e)

{



tab[brique.getPosimg1().getX()+1][brique.getPosimg1().getY()] = tab
[brique.getPosimg1().getX()][brique.getPosimg1().getY()]; // deplace la
brique


// de la brique durant une seconde d'une ligne


tab[brique.getPosimg2().getX()+1][brique.getPosimg2().getY()] =
tab [brique.getPosimg2().getX()][brique.getPosimg2().getY()];



// revalidate (); //ne compile pas

System.out.print(1);



}

});



timer.start();



}

Si quelqu'un pourrai m'aider car je ne comprend pas comment rafraichir
je n'arrive pas a trouvé de reponse me convenant sur les forum et je
n'ai pas trouvé de tuto qui permettent de faire ca .



Si quelqu'un a une addresse qui pourrait m'aider merci beaucoup ou
sinon si quelqu'un peut m'explique comemnt rafraichir ca serait super
simpa merci d'avance
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
490
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
13 mai 2009
2
3
Merci
non ce sont des tableaux qu'on pe inserer au premier niveau, tu pe mêm faire sans JPanel tu pe inserer directement sur le Canevas (je crois) du ContentPane:

t'as ta classe FenetreDuJeu:

class FenetreDuJeu extends JFrame implements....{
public FenetreDuJeu(ImageIcon[][] images){
this.getContentPane().setLayout(new GridLayout(images.lenght(),images[].lenght()));
for(int i=0;i

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de safisoft
Messages postés
490
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
13 mai 2009
2
0
Merci
j'ai po vu ton code mé pour rafraichir l'affichage tu pe appeler .repaint() de ta JFrame
Commenter la réponse de safisoft
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
6
0
Merci
t as essayé des trucs du style paintAll(this.getGraphics()) ou des repaint un peu de partout?? j ai déjà rencontré ce style de pb et je m en suis sorti comme ca, meme si c est pas tres bo!!!

Toinou
Commenter la réponse de super_toinou
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
A Priori meme avec repaint () ca ne marche pas mon image reste en 0,3
Commenter la réponse de mimilavitrine
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
Meme avec des repaint partout ca marche pas AU SECOURS lol
Commenter la réponse de mimilavitrine
Messages postés
490
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
13 mai 2009
2
0
Merci
je crois ke ca serais mieu d'inserer des JLabels dans un JPanel taillé avec un GridLayout et de changer leurs icones avec .setIcon(....)
Commenter la réponse de safisoft
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
Les JPanel crée des fenetres d'application ???
Commenter la réponse de mimilavitrine
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
MErci MErci MErci MErci ca marche beaucoup mieux maintenant j'ai quelque erreurs mais je pense pouvoir les gerer merci encore
Commenter la réponse de mimilavitrine