1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
| import java.io.IOException;
//Permet d'ouvrir un lien HTML
import java.util.Properties;
// Inter face Graphique
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//-----------------------------------Action Listener--------------------------
ActionListener lancerLeBonProgramme = new ActionListener() { // ActionListener des boutons, associe des voids aux boutons.
public void actionPerformed(ActionEvent clic)
{ if (clic.getActionCommand().equals("jouer")) { Jouer();}
if (clic.getActionCommand().equals("regle")) {Regle();}
if (clic.getActionCommand().equals("quitter")) {Quitter();}
}
};
//-----------------------------------------------------------------------------
//----------------------Creation d'une nouvelle fenetre ----------------------
JFrame f = new JFrame(); // la nouvelle fenetre s'appelle f
int largeurFenetre=1200;
int hauteurFenetre=700;
int xc=largeurFenetre/2; //milieu fenetre
int yc=hauteurFenetre/2; // milieu fenetre
int largeur;
int hauteur;
int posX;
int posY;
int taillecarreau=30;
int OrigX;
int OrigY;
int NbCarreauX=16;
int NbCarreauY=6;
boolean redimensionnement=false; // empeche le redimenssionement de la fenetre
boolean accueil=true; // permet l'affichage bouton sur l'accueil
JPanel cadre = new JPanel();
Dessin map = new Dessin();
// ton cadre doit ?tre un JPanel dans ce cas. Les cadres de type Dessin() sont fait pour supporter
// du graphisme...
// par contre , dans une fenetre, tu peux y mettre plusieurs cadres dont un serait du type dessin()
//----------------------------------------------------------------------------
//---------------------------------Definition boutons-------------------------
JButton jouer = new JButton("<html><font size = 7>Jouer</font></html>"); // Bouton Jouer
JButton regle = new JButton("<html><font size =7>Règles</font></html>"); // Bouton Regle
JButton quitter = new JButton("<html><font size = 5>Quitter</font></html>");//Bouton Quitter
//----------------------------------------------------------------------------
//---------------------------------Images-------------------------------------
Icon boutonquitter = new ImageIcon("BoutonQuitter.jpg"); // Image pour le bouton quitter
Icon WallPaper = new ImageIcon("Wallpaper.png"); // Image pour le bouton quitter
//----------------------------------------------------------------------------
//------------------Initialisation de la fenetre -----------------------------
void afficheFenetre(){
f.setTitle("BomberMan"); // titre
f.setSize(largeurFenetre, hauteurFenetre+100); //taille
f.setLocation(0,0); //position
f.add(cadre); // insertion du cadre dans la fenetre
f.setVisible(true); // affichage de la fenetre
f.setResizable(redimensionnement); // empeche le redimensionnement de la fenetre
}
void Jouer(){
accueil=false; // stop la boucle qui affiche les 3 boutons
cadre.remove(jouer); // vire les boutons
cadre.remove(regle);
quitter.setBounds(largeur-170,20,150,50); // repositionne le bouton
cadre.add(quitter); // remet le bouton quitter
quitter.setOpaque(true);// laisse l'opacite du bouton quitter
cadre.repaint(); // repositionne chaque element ayant changer de position
}
void Quitter(){
f.setVisible(false); // ferme la fenetre
accueil=false; // ferme la boucle du menu principal
}
void Regle(){
Properties sys = System.getProperties();
String os = sys.getProperty("os.name"); //on recupere le nom du systeme
Runtime r = Runtime.getRuntime(); //on recupere l'environnement d'execution
try{ //on essaye
if (os.startsWith("Mac")) // si on est sur MAC
r.exec("open http://gurvanisn.forumactif.org/h1-regle-pendu"); //ouvre la page des regles a partir d'une commande dans l'evt d'execution
else // si on est sur Windows
r.exec("cmd /c start http://gurvanisn.forumactif.org/h1-regle-pendu");} //ouvre la page des regles a partir d'une commande dans l'evt d'execution
catch (IOException ex){ //si cela echoue
ex.printStackTrace();
println("Impossible d'ouvrir le navigateur."); // affiche ce message si l'ouverture a echoue
sleep(200);
}
}
void boutons(){
largeur = cadre.getWidth(); // donne la largeur de la fenetre
hauteur = cadre.getHeight(); // donne la hauteur de la fenetre
regle.setBounds((largeur/2)-75,hauteur/2-120,150,90); // donne les dimensions du bouton regle
regle.setActionCommand("regle"); // associer un mot au bouton pour l'action Listener
regle.addActionListener(lancerLeBonProgramme); // associer l'actionListener leBonProgramme au bouton
cadre.add(regle);
jouer.setBounds((largeur/2)-75,hauteur/2,150,90); // Le bouton jouer lance le programme principal
jouer.setActionCommand("jouer"); // associer un mot pour l'actionListener
jouer.addActionListener(lancerLeBonProgramme); // Associer l'actionListener au bouton
cadre.add(jouer);
quitter.setBounds((largeur/2)-75,hauteur/2+120,150,50); // donne les dimension du boutn
quitter.setActionCommand("quitter"); // associer quitter au bouton pour l'action listener
quitter.addActionListener(lancerLeBonProgramme); // donne l'action listener pour lequel emettre
quitter.setIcon(boutonquitter); // associer une image au bouton quitter
cadre.add(quitter);
}
void main(){
clear(); // efface la console
cadre.setBackground(Color.WHITE);
afficheFenetre(); //ouvre la fenetre et ses propriete
accueil=true; // reactive le menu principal
cadre.setLayout(null);
// JLabel background = new JLabel(WallPaper);
// background.setBounds(0,0,largeurFenetre,hauteurFenetre+100);
// background.setOpaque(false);
// cadre.add(background);
boutons(); // met les boutons a leur bonne place
clear();
afficheFenetre();
OrigX=cadre.getWidth()/2-(taillecarreau*2*NbCarreauX)/2;
OrigY=cadre.getHeight()/2-(taillecarreau*2*NbCarreauY)/2;
}
public class Dessin extends JPanel{
public void paintComponent(Graphics g){
for(int x=0; x<NbCarreauX;x++){
posX=x*2*taillecarreau;
for(int y=0; y<NbCarreauY;y++){
g.setColor(Color.BLACK);
posX=x*(2*taillecarreau)+OrigX;
posY=y*(2*taillecarreau)+OrigY;
g.fillRect(posX,posY,taillecarreau,taillecarreau);
posX=x*2*taillecarreau+taillecarreau+OrigX;
posY=y*2*taillecarreau+taillecarreau+OrigY;
g.fillRect(posX,posY,taillecarreau,taillecarreau);
g.setColor(Color.RED);
posX=x*2*taillecarreau+taillecarreau+OrigX;
posY=y*2*taillecarreau+OrigY;
g.fillRect(posX,posY,taillecarreau,taillecarreau);
posX=x*2*taillecarreau+OrigX;
posY=y*2*taillecarreau+taillecarreau+OrigY;
g.fillRect(posX,posY,taillecarreau,taillecarreau);
}
}
}
} |
Partager