[JAVA]Mettre Canvas ds Panel avec GridLayout

Fermé
Archange - 16 mars 2008 à 16:54
 Archange - 16 mars 2008 à 20:53
Bonjour a tous,

Voici mon probleme, je veux afficher par l'intermediaire d'un gridLayout dans un panel des canvas (avec une boucle for) car le nombre de case est en realité dynamique, mais pour le moment, je fixe deux entier (nb Colonne et nb ligne ) du gridlayout et ca ne marche pas, aucun affichage...

Alors voici mon code :

MAIS avant tout, sachez que ISOLA est un jar dans lequel il ya des constructeurs et méthode déjà faite et mon but est ici juste de faire l'interface graphique d'un jeu qui s'appele ISOLA et dont les methode et constructeurs sont deja definies ...
__________________________________________________
Allez ici pour comprendre les methodes et constructeurs appelé ISOLA : [URL="http://www.maxence-lefrancois.123.fr/"]ICI[/URL]
__________________________________________________
Voici mon code pour le moment avec les differentes classe :
__________________________________________________
import java.awt.*;
import java.util.Observable;
import java.util.Observer;

import tpIsola.Isola;

public class Dessin extends Canvas implements Observer{

private Isola iso ;
private int i;
private int j;

public Dessin(Isola iso, int i, int j){
this.iso = iso;
this.i = i ;
this.j = j;
}
public void paint(Graphics g){
int[][] t = new int[iso.getNbLignes()][iso.getNbColonnes()];
t = iso.getPlateau();


g.setColor(Color.BLACK);
g.drawRect(20*iso.getNbLignes(), 20*iso.getNbColonnes(), 40, 40); //dessine un rectangle dans tous les canvas quelqu'ils soient


}

public void update (Observable Ob, Object Obj) {
this.repaint();
}
}

___________________________________________________________________________

import java.awt.Color;
import java.awt.Frame;

public class Fenetre extends Frame{

final static int HAUTEUR = 800;
final static int LARGEUR = 800;

public Fenetre(){
this.setTitle("ISOLA PROJECT"); //titre
this.setSize(LARGEUR, HAUTEUR); //dim fenetre
this.setBackground(Color.white); //couleur du fond
this.add(new MessagePanel());
this.setVisible(true);
this.addWindowListener(new WindowCloser (this));

}
}

___________________________________________________________________

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import tpIsola.Isola;
public class MessagePanel extends Panel{

public MessagePanel(){
Isola iso = new Isola(4,4,2);

this.setLayout(new BorderLayout());

Panel p = new Panel();

GridLayout grid = new GridLayout(iso.getNbLignes(),iso.getNbColonnes());
p.setLayout(grid); //gridLayout dans le panel avec des canvas

for(int k=1; k<=iso.getNbLignes(); k++){
for(int l=1; l<=iso.getNbColonnes(); l++){
Dessin d = new Dessin(iso,k,l);
p.add(d); //ajout du canvas en cours dans le panel p => il y'a autant d'ajout que de nombre de case
}
}

this.setVisible(true);

this.add(p,"North"); //ajout du panel



}
}

________________________________________________________________

public class StartFenetre {

public static void main(String[] args) {
new Fenetre();

}

}

_________________________________________________________________


import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class WindowCloser extends WindowAdapter{

private Frame f;
public WindowCloser(Fenetre f) {
this.f = f;
}
public void windowClosing(WindowEvent e){
f.dispose();
}

}




j'attends avec impatience de l'aide ... :)

PS2 : le Isola.jar est bien importé pas de proleme la dessus, mais j'ai juste une Frame Blanche qui apparait, mais aucun de mes canvas ...voila.

PS3 : WindowCloser ne sert a rien d'autre qu'a fermer la fenetre quand je clique sur la croix de la fenetre donc le probleme n'est pas la ;)

Merci d'avance ...
A voir également:

2 réponses

personne pour venir a bout de mon probleme ?
0
personne visiblement ... :snif:
0