mardi 24 novembre 2009

Jeu d'echec en Java ...article 3

Le constructeur définie lors du précédent tutoriel , nous permet de générer la grille suivante , sans les icones bien sûr , je vais vous détailler sur ce tuto les deux fonctions permettant la génération de ces icones sur cette grille ...


Avant de passer aux fonctions d'initialisation , je reviens un peu en détail au précédent constructeur , en précisant que notre classe DisplayingTable herite de la classe mere Jframe , et qu'aussitôt une instance généré , son constructeur se charge de récupéré une référence vers le Container de cette page et d'y ajouter a la fin notre Jpanel surchargé d'éléments de jeu,

l'allocation du GridBaglayout s'est faite alors sur le Jpanel tables pour que table puisse être ajouter au Container.


Revenons maintenant à l'initialisation de nos éléments de jeu , deux fonctions ont été nécessaire à cela :


la classe initialisation , qui se charge d'importer une icône définissant chaque élément de jeu , en spécifiant comme paramètre , le chemin vers l'icone en String , et les coordonnées de l'élément auxquels elle devra être affecter .


public void initialisation(String url_file,int i,int j)

{

JLabel label=new JLabel();

label.setOpaque(true);

label.setIcon(new ImageIcon(url_file));

label.setBackground(colors[i][j]);

label.setPreferredSize(new Dimension(50,50));

label.addMouseListener(listener);

table.remove(labes[i][j]);

table.add(label,TransformerTool.GBTransformer(GBC,i,j,1,1));

}


tachez pour l'instant de ne pas trop vous focaliser sur les lignes de commandes permettant d'ajouter des listener à nos objets . Cette fonction d'initialisation , créer à chaque appel un nouvel objet lui alloue comme couleurs , la couleur de la case correspondante , et la on remarque l'utilité de la création d'un tableau de couleurs ,cette mémorisation s'avère donc être utile :) !


on supprimera par la suite l'élément visé à travers les coordonnées donnée en paramètres , cela bien sur afin de le remplacer par le nouvel élément instancié.


Cette fonction à été surtout crée pour être soliciter à travers plusieurs appels, par une fonction appelons la mere ^^ , qui initialisera tout les éléments du jeu :



public void ElementsInitialisation()

{

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

{

this.initialisation("pion_blanc.gif",i,1);

}

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

{

this.initialisation("pion_noir.gif",i,6);

}

this.initialisation("tour_blanche.gif",0,0);

this.initialisation("tour_blanche.gif",7,0);

this.initialisation("fou_blanc.gif",2,0);

this.initialisation("fou_blanc.gif",5,0);

this.initialisation("chevalier_blanc.gif",1,0);

this.initialisation("chevalier_blanc.gif",6,0);

this.initialisation("reine_blanche.gif",4,0);

this.initialisation("roi_blanc.gif",3,0);

this.initialisation("tour_noir.gif",0,7);

this.initialisation("tour_noir.gif",7,7);

this.initialisation("fou_noir.gif",2,7);

this.initialisation("fou_noir.gif",5,7);

this.initialisation("chevalier_noir.gif",1,7);

this.initialisation("chevalier_noir.gif",6,7);

this.initialisation("reine_noir.gif",3,7);

this.initialisation("roi_noir.gif",4,7);

}


la fonction ,ElementsInitialisation initialisera à travers plusieurs appels à la précédente fonction tout les éléments de jeu , tachez juste de mettre les bonnes coordonnées et à ne pas vous trompez lors de la spécification du chemin relatifs à chaque icône .

Voilà, pour cette toute première partie graphique, on développera dans les prochains tuto, l'utilisation de nos Listners pour en quelques sorte dynamiser ce graphisme... vous aurez aussi bien affaire aux classes du package Bakend qu'a ceux de EventHandlers … :p


Aucun commentaire:

Enregistrer un commentaire