Bonjour,
Je suis entrainde developper un jeu de domino de 28 pions. je bloque sur l'interface. Merci de m'aider avec un bout de code qui permet de choisir 7 pions parmi 28 pour chaque joueur (max 4 joueur) aleatoirement.
j'ai pensé à une grile mais je crains que ça ne va pas etre interactive pour déplacer les pions et le mettre dans les cases de la grille.
Deux idées qui me tente :
1- grille avec l'objet Case de java
2 grille avec les cases sous forme de button
J'ai pensé a la deuxème solution pour une fois déplacer un pion, il suffit juste de changer le motif (icon) de la case.
je veux changer la liste des pion a gauche et les mettre dans une grille en bas ? sous forme de liste je trouve que c'est null :-(
Au secours merci de m'aider:
interface avec grille :
Classe VueGrille :
package IHM;
import java.awt.Canvas;
import java.awt.Graphics;
class VueGrille extends Canvas{
private static final long serialVersionUID = -5149989339205840612L;
private int nbCasesX,nbCasesY;
private Case[][] grille;
public VueGrille(int nbCasesX,int nbCasesY,int largeurCase){
super();
this.nbCasesX=nbCasesX;
this.nbCasesY=nbCasesY;
grille=new Case[nbCasesX][nbCasesY];
setSize(nbCasesX,nbCasesY);
for(int x=0;x<nbCasesX;x++){
for(int y=0;y<nbCasesY;y++){
grille[x][y]=new Case(x,y,largeurCase);
}
}
}
public void paint(Graphics g) {
for(int x=0;x<nbCasesX;x++){
for(int y=0;y<nbCasesY;y++){
grille[x][y].paint(g);
}
}
}
}
Classe de l'interface :
package IHM;
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;
//import java.awt.event.*;
import javax.swing.*;
public class FenetreJeu extends JFrame implements WindowListener, ActionListener{
private static final long serialVersionUID=-4653333660666146303L;
private VueGrille grille;
private JPanel gauche, pd;
JLabel [] pions=new JLabel[7];
private JButton B1 = new JButton("Passer" );
private JTextArea InfosJoueurs,InfosPartie;
private JList jList;
JScrollPane jScrollPane;
private Box userNameBox = Box.createHorizontalBox();
public FenetreJeu(final ImageIcon[] listeDominos){
//public FenetreJeu(final JButton[] listeDominos){
super("Jeu DOMINO" );
getContentPane().setLayout(null);
getContentPane().setBackground(new Color(176,219,244));
gauche=new JPanel();
pd=new JPanel();
InfosPartie=new JTextArea(" Dernier coup :\n domino(2,5)" );
InfosPartie.setEnabled(false);
gauche.add(InfosPartie);
InfosJoueurs=new JTextArea("Aucun joueur" );
/* David : 5 dominos\n"+" >Madiha : 3 dominos\n"+" Kévin : 3 dominos\n"+
" Sophie : 4 dominos\n"+" Pioche : 5 dominos */
InfosJoueurs.setEnabled(false);
gauche.add(InfosJoueurs);
gauche.add(B1);
gauche.add(new JButton("Piocher" ));
gauche.add(new JButton("Actualiser" ));
gauche.setBackground(new Color(255,231,29));
gauche.setBounds(0,0,130,600);
getContentPane().add(gauche);
grille= new VueGrille(20,20,30);
grille.setBounds(133,1,520,520);
getContentPane().add(grille);
//pd.setPreferredSize(new Dimension(,500));
//pd.add(pions[0]=new JLabel(new ImageIcon("1_1.gif" )));
//pd.setBounds(0,520,700,700);
getContentPane().add(pd);
//setSize(660,590);
setSize(600,600);
//
/***********************Liste des dominos***********************************************/
userNameBox.setBorder(BorderFactory.createTitledBorder("Vos Dominos :" ));
jList = new JList(listeDominos);
jList.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// String name = null;
// if (listeDominos.length > 0)
// if (e.getClickCount() == 2) {
// name = (String) jList.getModel().getElementAt(jList.
// locationToIndex(e.getPoint()));
//ici traitement correspondant à la selection d'un domino
//}
}
}
);
jScrollPane = new JScrollPane(jList);
//gauche.setLayout(new GridLayout(4, 1));
userNameBox.add(jScrollPane);
gauche.add(userNameBox);
jScrollPane.setPreferredSize(new Dimension(85, 100));
setLocationRelativeTo(this.getParent());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
// *******************GESTION DES ACTIONS SOURIS, FENETRE, MENU DEROULANT*******************
// ****************************Méthode actionPerformed**************************************
/** Méthode définissant les actions sur le menu déroulant.
/*******
// ACHANGER LES NOM DES METHDES
// Gestion des évènements des contrôles de la fenêtre
public void actionPerformed(ActionEvent evt)
{
// Si le joueur clique sur le menu "Nouvelle Partie", on relance le jeu
if(evt.getActionCommand().equals("Nouvelle Partie" )){
try{
damierDistant.nouvellePartie();
}
catch (Exception e){
System.out.println("Un probleme est survenue lors de l'appel du serveur 1 : " + e);
}
}
// Si le joueur clique sur le menu "Annuler Dernière Action"
if(evt.getActionCommand().equals("Annuler Action" ))
{
if (monType != damierGraphique.getAQui())
{
try{
damierDistant.annulerDeplacement();
musique.Jouer("./son/Halliday.au" );
}
catch (Exception e){
System.out.println("Un probleme est survenue lors de l'appel du serveur 2 : " + e);
}
}
}
// Si le joueur clique sur le menu "Quitter", on quitte le jeu
if(evt.getActionCommand().equals("Quitter" )){
try{
damierDistant.deconnecterClients(this);
}
catch (Exception e){
System.out.println("Un probleme est survenue lors de l'appel du serveur 3 : " + e);
}
System.exit(0);
}
}//Fin de la méthode actionPerformed
****/
public static void main(String[] args){
ImageIcon main[]= {new ImageIcon("1_1.gif" ),new ImageIcon("1_2.gif" ),new ImageIcon("1_3.gif" ),new ImageIcon("1_4.gif" )};
//JButton bouton11 = new JButton();
//bouton11.setIcon(new ImageIcon("1_1.gif" ));
//JButton bouton12 = new JButton(new ImageIcon("1_2.gif" ));
//JButton bouton13 = new JButton(new ImageIcon("1_3.gif" ));
//JButton bouton14 = new JButton(new ImageIcon("1_4.gif" ));
//JButton main[]= {bouton11,bouton12,bouton13,bouton14};
FenetreJeu f1 = new FenetreJeu(main);
//MENU
MenuBar menuJeu = new MenuBar();
Menu outils = new Menu("Outils" );
menuJeu.add(outils);
MenuItem newPartie = new MenuItem("Nouvelle Partie" );
outils.add(newPartie);
//newPartie.addActionListener(this);
MenuItem annuler = new MenuItem("Annuler Action" );
outils.add(annuler);
//annuler.addActionListener(this);
MenuItem quitter = new MenuItem("Quitter" );
outils.add(quitter);
//quitter.addActionListener(this);
f1.setMenuBar(menuJeu);
f1.isVisible();
}
}
Merci pour votre aide