428 lines
16 KiB
Java
428 lines
16 KiB
Java
package graphique;
|
|
|
|
import java.awt.EventQueue;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.border.EmptyBorder;
|
|
import com.jgoodies.forms.layout.FormLayout;
|
|
import com.jgoodies.forms.layout.ColumnSpec;
|
|
import com.jgoodies.forms.layout.RowSpec;
|
|
import com.jgoodies.forms.layout.FormSpecs;
|
|
import java.awt.GridLayout;
|
|
import java.awt.Image;
|
|
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JOptionPane;
|
|
import javax.imageio.ImageIO;
|
|
import javax.swing.ImageIcon;
|
|
import net.miginfocom.swing.MigLayout;
|
|
|
|
import java.awt.BorderLayout;
|
|
import javax.swing.JButton;
|
|
import java.awt.GridBagLayout;
|
|
import javax.swing.border.BevelBorder;
|
|
import java.awt.Color;
|
|
import java.awt.Toolkit;
|
|
import java.awt.event.ActionListener;
|
|
import java.io.IOException;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.FlowLayout;
|
|
import javax.swing.JTextPane;
|
|
import javax.swing.SwingConstants;
|
|
import java.awt.Font;
|
|
import java.awt.Graphics;
|
|
import java.awt.Window.Type;
|
|
import java.awt.GridBagConstraints;
|
|
import java.awt.Insets;
|
|
import javax.swing.JSpinner;
|
|
import javax.swing.SpinnerNumberModel;
|
|
import javax.swing.JProgressBar;
|
|
import java.awt.CardLayout;
|
|
import javax.swing.JLayeredPane;
|
|
import javax.swing.border.CompoundBorder;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.File;
|
|
import java.awt.Graphics2D;
|
|
|
|
//import java.awt.Graphics2D;
|
|
//import java.awt.image.BufferedImage;
|
|
//import java.io.File;
|
|
//import java.io.IOException;
|
|
//import javax.imageio.ImageIO;
|
|
|
|
|
|
|
|
public class MaJFrame extends JFrame {
|
|
|
|
private JPanel contentPane;
|
|
private static final long serialVersionUID = 7252959164975426293L;
|
|
private JPanel panelBoutonJouer;
|
|
private JPanel panelEnsemble;
|
|
private JLabel lblZombicide;
|
|
private JPanel panelInfo;
|
|
private JButton btnDeplacer;
|
|
private JButton btnAttaquer;
|
|
private JSpinner deplacementX;
|
|
private JSpinner deplacementY;
|
|
private JLabel lblDepX;
|
|
private JLabel lblDepY;
|
|
private JLabel lblScore;
|
|
private JPanel panelScore;
|
|
private JLabel lblScoreVie;
|
|
private JLabel lblAttaque;
|
|
private JProgressBar progressBarVie;
|
|
private JProgressBar progressBarAttaque;
|
|
private JPanelImage panelMap;
|
|
private JPanelDessin panelGrille;
|
|
private JLabel lblJoueur;
|
|
private JLabel lblZombie;
|
|
private JLabel lblNbZombiesTues;
|
|
private JLabel lblNbZombies;
|
|
// private Simulateur sim;
|
|
|
|
|
|
|
|
/**
|
|
* Launch the application.
|
|
*/
|
|
public static void main(String[] args) {
|
|
EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
try {
|
|
MaJFrame frame = new MaJFrame();
|
|
frame.setVisible(true);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Create the frame.
|
|
* @throws IOException
|
|
*/
|
|
public MaJFrame() throws IOException {
|
|
setIconImage(Toolkit.getDefaultToolkit().getImage(MaJFrame.class.getResource("/images/zombie.png")));
|
|
// création et variable contentPane
|
|
setTitle("Zombicide");
|
|
setBackground(new Color(128, 0, 0));
|
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
setBounds(100, 100, 1008, 886);
|
|
contentPane = new JPanel();
|
|
contentPane.setBackground(new Color(128, 0, 0));
|
|
contentPane.setBorder(new EmptyBorder(2, 2, 2, 2));
|
|
contentPane.setLayout(new BorderLayout(0, 0));
|
|
setContentPane(contentPane);
|
|
|
|
//création panel bouton Jouer
|
|
panelBoutonJouer = new JPanel();
|
|
panelBoutonJouer.setBorder(null);
|
|
panelBoutonJouer.setBackground(new Color(64, 0, 0));
|
|
contentPane.add(panelBoutonJouer); //, "cell 10 10,grow"
|
|
contentPane.add(panelBoutonJouer, BorderLayout.NORTH);
|
|
panelBoutonJouer.setLayout(new BorderLayout(0, 0));
|
|
|
|
JButton btnJouer = new JButton("JOUER !");
|
|
btnJouer.setForeground(new Color(255, 255, 255));
|
|
btnJouer.setBackground(new Color(255, 128, 0));
|
|
btnJouer.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
clicBoutonJouer();
|
|
}
|
|
});
|
|
panelBoutonJouer.add(btnJouer);
|
|
|
|
//création panelEnsemble contient panelMap et panelInofo
|
|
panelEnsemble = new JPanel();
|
|
panelEnsemble.setBorder(null);
|
|
contentPane.add(panelEnsemble, BorderLayout.CENTER);
|
|
GridBagLayout gbl_panelEnsemble = new GridBagLayout();
|
|
gbl_panelEnsemble.columnWidths = new int[] {835, 66, 75};
|
|
gbl_panelEnsemble.rowHeights = new int[]{789, 0};
|
|
gbl_panelEnsemble.columnWeights = new double[]{0.0, 0.0, 0.0};
|
|
gbl_panelEnsemble.rowWeights = new double[]{0.0, Double.MIN_VALUE};
|
|
panelEnsemble.setLayout(gbl_panelEnsemble);
|
|
|
|
//création panel Map
|
|
panelMap = new JPanelImage();//"map1.png"
|
|
GridBagConstraints gbc_panelMap = new GridBagConstraints();
|
|
gbc_panelMap.insets = new Insets(0, 0, 18, 5);
|
|
gbc_panelMap.fill = GridBagConstraints.BOTH;
|
|
gbc_panelMap.gridx = 0;
|
|
gbc_panelMap.gridy = 0;
|
|
panelEnsemble.add(panelMap, gbc_panelMap);
|
|
panelMap.setLayout(new CardLayout(0, 0));
|
|
|
|
//création panel Grille
|
|
panelGrille = new JPanelDessin();
|
|
panelGrille.setBackground(null);
|
|
panelGrille.setForeground(new Color(235, 235, 235));
|
|
panelGrille.setOpaque(false);
|
|
panelMap.add(panelGrille, "panelGrille");
|
|
GridBagLayout gbl_panelGrille = new GridBagLayout();
|
|
gbl_panelGrille.columnWidths = new int[] {75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75};
|
|
gbl_panelGrille.rowHeights = new int[] {71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71};
|
|
gbl_panelGrille.columnWeights = new double[]{0.0};
|
|
gbl_panelGrille.rowWeights = new double[]{0.0};
|
|
panelGrille.setLayout(gbl_panelGrille);
|
|
|
|
// //redimensionner image
|
|
// int newWidth = 300; // nouvelle largeur
|
|
// int newHeight = 200; // nouvelle hauteur
|
|
// File input = new File("joueur.png"); // chemin de l'image d'origine
|
|
// BufferedImage originalImage = ImageIO.read(input); // lecture de l'image d'origine
|
|
// BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, originalImage.getType()); // création d'une nouvelle image avec les dimensions souhaitées
|
|
// Graphics2D g = resizedImage.createGraphics(); // création d'un objet Graphics2D pour dessiner sur la nouvelle image
|
|
// g.drawImage(originalImage, 0, 0, newWidth, newHeight, null); // dessin de l'image d'origine sur la nouvelle image
|
|
// g.dispose(); // libération des ressources du Graphics2D
|
|
// String format = "png"; // format de l'image de sortie
|
|
// File output = new File("image_redimensionnee.png"); // chemin de l'image de sortie
|
|
// ImageIO.write(resizedImage, format, output); // écriture de la nouvelle image dans un fichier
|
|
|
|
|
|
//ajout joueur
|
|
lblJoueur = new JLabel();
|
|
int newWidth = 100;
|
|
int newHeight = 100;
|
|
// File fJoueur = new File("/images/joueur.png");
|
|
// System.out.println("fJo = "+fJoueur);
|
|
try {
|
|
Image originalJoueur =Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/joueur.png"));
|
|
BufferedImage reJoueur = new BufferedImage(originalJoueur.getWidth(null), originalJoueur.getHeight(null),BufferedImage.TYPE_INT_ARGB);
|
|
Image redimJoueur= reJoueur.getScaledInstance(newWidth, newHeight,Image.SCALE_DEFAULT);
|
|
Graphics g = redimJoueur.getGraphics();
|
|
g.drawImage(originalJoueur, 0, 0, null);
|
|
g.dispose();
|
|
lblJoueur.setIcon(new ImageIcon(redimJoueur));
|
|
}
|
|
catch(Exception e) {
|
|
}
|
|
// lblJoueur.setIcon(new ImageIcon(MaJFrame.class.getResource("/images/joueur.png")));
|
|
GridBagConstraints gbc_joueur = new GridBagConstraints();
|
|
gbc_joueur.fill = GridBagConstraints.CENTER;
|
|
gbc_joueur.gridx = 2;
|
|
gbc_joueur.gridy = 4;
|
|
gbc_joueur.gridwidth = 1; // Occupy 1 column
|
|
gbc_joueur.gridheight = 1; // Occupy 1 row
|
|
gbc_joueur.anchor = GridBagConstraints.CENTER;
|
|
panelGrille.add(lblJoueur, gbc_joueur);
|
|
lblJoueur.setVisible(true);
|
|
|
|
|
|
//ajout zombie
|
|
lblZombie = new JLabel();
|
|
lblZombie.setIcon(new ImageIcon(MaJFrame.class.getResource("/images/zombie.png")));
|
|
GridBagConstraints gbc_zombie = new GridBagConstraints();
|
|
gbc_zombie.fill = GridBagConstraints.CENTER;
|
|
gbc_zombie.gridx = 5;
|
|
gbc_zombie.gridy = 7;
|
|
gbc_zombie.gridwidth = 1; // Occupy 1 column
|
|
gbc_zombie.gridheight = 1; // Occupy 1 row
|
|
gbc_zombie.anchor = GridBagConstraints.CENTER;
|
|
panelGrille.add(lblZombie, gbc_zombie);
|
|
|
|
|
|
|
|
lblZombicide = new JLabel("ZOMBICIDE");
|
|
lblZombicide.setFont(new Font("Tahoma", Font.BOLD, 40));
|
|
lblZombicide.setForeground(new Color(255, 128, 0));
|
|
lblZombicide.setHorizontalAlignment(SwingConstants.CENTER);
|
|
panelMap.add(lblZombicide, "lblZombicide");
|
|
lblZombicide.setVisible(true);
|
|
|
|
// création panelInfo
|
|
panelInfo = new JPanel();
|
|
panelInfo.setBackground(new Color(95, 95, 95));
|
|
GridBagConstraints gbc_panelInfo = new GridBagConstraints();
|
|
gbc_panelInfo.fill = GridBagConstraints.BOTH;
|
|
gbc_panelInfo.gridx = 2;
|
|
gbc_panelInfo.gridy = 0;
|
|
panelEnsemble.add(panelInfo, gbc_panelInfo);
|
|
GridBagLayout gbl_panelInfo = new GridBagLayout();
|
|
gbl_panelInfo.columnWidths = new int[] {75};
|
|
gbl_panelInfo.rowHeights = new int[] {20, 190, 56, 87, 91, 82, 30, 30, 30, 55, 91, 0};
|
|
gbl_panelInfo.columnWeights = new double[]{1.0};
|
|
gbl_panelInfo.rowWeights = new double[]{0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
|
|
panelInfo.setLayout(gbl_panelInfo);
|
|
|
|
lblScore = new JLabel("Scores");
|
|
lblScore.setForeground(new Color(240, 240, 240));
|
|
lblScore.setHorizontalAlignment(SwingConstants.CENTER);
|
|
lblScore.setVerticalAlignment(SwingConstants.BOTTOM);
|
|
GridBagConstraints gbc_lblScore = new GridBagConstraints();
|
|
gbc_lblScore.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblScore.gridx = 0;
|
|
gbc_lblScore.gridy = 0;
|
|
panelInfo.add(lblScore, gbc_lblScore);
|
|
|
|
btnDeplacer = new JButton("Déplacer");
|
|
btnDeplacer.setIcon(null);
|
|
btnDeplacer.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
}
|
|
});
|
|
|
|
panelScore = new JPanel();
|
|
panelScore.setBackground(new Color(95, 95, 95));
|
|
GridBagConstraints gbc_panelScore = new GridBagConstraints();
|
|
gbc_panelScore.anchor = GridBagConstraints.NORTH;
|
|
gbc_panelScore.insets = new Insets(0, 0, 5, 0);
|
|
gbc_panelScore.gridx = 0;
|
|
gbc_panelScore.gridy = 1;
|
|
panelInfo.add(panelScore, gbc_panelScore);
|
|
GridBagLayout gbl_panelScore = new GridBagLayout();
|
|
gbl_panelScore.columnWidths = new int[] {30, 10};
|
|
gbl_panelScore.rowHeights = new int[] {30, 90, 0};
|
|
gbl_panelScore.columnWeights = new double[]{1.0, 0.0};
|
|
gbl_panelScore.rowWeights = new double[]{0.0, 0.0, 1.0};
|
|
panelScore.setLayout(gbl_panelScore);
|
|
|
|
lblScoreVie = new JLabel("Vies");
|
|
lblScoreVie.setForeground(new Color(240, 240, 240));
|
|
lblScoreVie.setVerticalAlignment(SwingConstants.BOTTOM);
|
|
GridBagConstraints gbc_lblScoreVie = new GridBagConstraints();
|
|
gbc_lblScoreVie.anchor = GridBagConstraints.SOUTH;
|
|
gbc_lblScoreVie.insets = new Insets(0, 0, 5, 5);
|
|
gbc_lblScoreVie.gridx = 0;
|
|
gbc_lblScoreVie.gridy = 0;
|
|
panelScore.add(lblScoreVie, gbc_lblScoreVie);
|
|
|
|
lblAttaque = new JLabel("Attaque");
|
|
lblAttaque.setForeground(new Color(240, 240, 240));
|
|
lblAttaque.setVerticalAlignment(SwingConstants.BOTTOM);
|
|
GridBagConstraints gbc_lblAttaque = new GridBagConstraints();
|
|
gbc_lblAttaque.anchor = GridBagConstraints.SOUTH;
|
|
gbc_lblAttaque.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblAttaque.gridx = 1;
|
|
gbc_lblAttaque.gridy = 0;
|
|
panelScore.add(lblAttaque, gbc_lblAttaque);
|
|
|
|
progressBarVie = new JProgressBar();
|
|
progressBarVie.setForeground(new Color(0, 255, 0));
|
|
progressBarVie.setValue(4);
|
|
progressBarVie.setMaximum(5);
|
|
progressBarVie.setOrientation(SwingConstants.VERTICAL);
|
|
GridBagConstraints gbc_progressBarVie = new GridBagConstraints();
|
|
gbc_progressBarVie.fill = GridBagConstraints.VERTICAL;
|
|
gbc_progressBarVie.insets = new Insets(0, 0, 5, 5);
|
|
gbc_progressBarVie.gridx = 0;
|
|
gbc_progressBarVie.gridy = 1;
|
|
panelScore.add(progressBarVie, gbc_progressBarVie);
|
|
|
|
progressBarAttaque = new JProgressBar();
|
|
progressBarAttaque.setForeground(new Color(255, 0, 0));
|
|
progressBarAttaque.setValue(3);
|
|
progressBarAttaque.setMaximum(5);
|
|
progressBarAttaque.setOrientation(SwingConstants.VERTICAL);
|
|
GridBagConstraints gbc_progressBarAttaque = new GridBagConstraints();
|
|
gbc_progressBarAttaque.insets = new Insets(0, 0, 5, 0);
|
|
gbc_progressBarAttaque.fill = GridBagConstraints.VERTICAL;
|
|
gbc_progressBarAttaque.gridx = 1;
|
|
gbc_progressBarAttaque.gridy = 1;
|
|
panelScore.add(progressBarAttaque, gbc_progressBarAttaque);
|
|
|
|
lblNbZombiesTues = new JLabel(" nombre de zombies tués : ");
|
|
lblNbZombiesTues.setForeground(new Color(240, 240, 240));
|
|
GridBagConstraints gbc_lblNbZombiesTues = new GridBagConstraints();
|
|
gbc_lblNbZombiesTues.anchor = GridBagConstraints.SOUTH;
|
|
gbc_lblNbZombiesTues.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblNbZombiesTues.gridx = 0;
|
|
gbc_lblNbZombiesTues.gridy = 2;
|
|
panelInfo.add(lblNbZombiesTues, gbc_lblNbZombiesTues);
|
|
|
|
lblNbZombies = new JLabel("x");
|
|
lblNbZombies.setForeground(new Color(240, 240, 240));
|
|
GridBagConstraints gbc_lblNbZombies = new GridBagConstraints();
|
|
gbc_lblNbZombies.anchor = GridBagConstraints.NORTH;
|
|
gbc_lblNbZombies.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblNbZombies.gridx = 0;
|
|
gbc_lblNbZombies.gridy = 3;
|
|
panelInfo.add(lblNbZombies, gbc_lblNbZombies);
|
|
|
|
//création boutonDeplacer
|
|
GridBagConstraints gbc_btnDeplacer = new GridBagConstraints();
|
|
gbc_btnDeplacer.fill = GridBagConstraints.BOTH;
|
|
gbc_btnDeplacer.insets = new Insets(0, 0, 5, 0);
|
|
gbc_btnDeplacer.gridx = 0;
|
|
gbc_btnDeplacer.gridy = 4;
|
|
panelInfo.add(btnDeplacer, gbc_btnDeplacer);
|
|
|
|
lblDepX = new JLabel("déplacement X");
|
|
lblDepX.setForeground(new Color(240, 240, 240));
|
|
lblDepX.setVerticalAlignment(SwingConstants.BOTTOM);
|
|
GridBagConstraints gbc_lblDepX = new GridBagConstraints();
|
|
gbc_lblDepX.fill = GridBagConstraints.BOTH;
|
|
gbc_lblDepX.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblDepX.gridx = 0;
|
|
gbc_lblDepX.gridy = 5;
|
|
panelInfo.add(lblDepX, gbc_lblDepX);
|
|
|
|
deplacementX = new JSpinner();
|
|
deplacementX.setFont(new Font("Tahoma", Font.PLAIN, 10));
|
|
deplacementX.setModel(new SpinnerNumberModel(0, -3, 3, 1));
|
|
GridBagConstraints gbc_deplacementX = new GridBagConstraints();
|
|
gbc_deplacementX.insets = new Insets(0, 0, 5, 0);
|
|
gbc_deplacementX.gridx = 0;
|
|
gbc_deplacementX.gridy = 6;
|
|
panelInfo.add(deplacementX, gbc_deplacementX);
|
|
|
|
lblDepY = new JLabel("déplacement Y");
|
|
lblDepY.setForeground(new Color(240, 240, 240));
|
|
lblDepY.setVerticalAlignment(SwingConstants.BOTTOM);
|
|
GridBagConstraints gbc_lblDepY = new GridBagConstraints();
|
|
gbc_lblDepY.fill = GridBagConstraints.BOTH;
|
|
gbc_lblDepY.insets = new Insets(0, 0, 5, 0);
|
|
gbc_lblDepY.gridx = 0;
|
|
gbc_lblDepY.gridy = 7;
|
|
panelInfo.add(lblDepY, gbc_lblDepY);
|
|
|
|
deplacementY = new JSpinner();
|
|
deplacementY.setFont(new Font("Tahoma", Font.PLAIN, 10));
|
|
deplacementY.setModel(new SpinnerNumberModel(0, -3, 3, 1));
|
|
GridBagConstraints gbc_deplacementY = new GridBagConstraints();
|
|
gbc_deplacementY.insets = new Insets(0, 0, 5, 0);
|
|
gbc_deplacementY.gridx = 0;
|
|
gbc_deplacementY.gridy = 8;
|
|
panelInfo.add(deplacementY, gbc_deplacementY);
|
|
|
|
//création boutonAttaquer
|
|
btnAttaquer = new JButton("Attaquer");
|
|
btnAttaquer.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
}
|
|
});
|
|
GridBagConstraints gbc_btnAttaquer = new GridBagConstraints();
|
|
gbc_btnAttaquer.fill = GridBagConstraints.BOTH;
|
|
gbc_btnAttaquer.gridx = 0;
|
|
gbc_btnAttaquer.gridy = 10;
|
|
panelInfo.add(btnAttaquer, gbc_btnAttaquer);
|
|
|
|
}
|
|
|
|
|
|
public void clicBoutonJouer() {
|
|
lblZombicide.setVisible(false);
|
|
lblJoueur.setVisible(true);
|
|
}
|
|
|
|
|
|
// protected void clicPause() {
|
|
//
|
|
// {
|
|
//
|
|
//
|
|
// protected void clicStart () {
|
|
// sim = new Simulateur(100,this);
|
|
// sim.lancerSimulateur();
|
|
//
|
|
//
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
|