Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package VueGraphique;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import carte.Carte;
- import carte.GuideSpirituel;
- import partie.JoueurHumain;
- import partie.Partie;
- import terrain.CentreTable;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.image.BufferedImage;
- import java.io.*;
- import java.util.HashMap;
- import java.util.InputMismatchException;
- import java.util.Observable;
- import java.util.Observer;
- import java.util.Scanner;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Image;
- import java.awt.Insets;
- import javax.imageio.ImageIO;
- import javax.swing.Box;
- import javax.swing.Icon;
- public class Fenetre extends JFrame implements Observer{
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- public static int valeurCase=0;
- Color Transparent= new Color(0,0,0,0);
- private String lecture;
- private Partie p;
- private boolean initialiser;
- private JButton[][] imageTerrain;
- private JButton[] imageMain;
- private JButton[] imageCentre;
- private JLabel[] texteTerrain;
- private JLabel actionJoueurPointTexte;
- private JLabel actionJoueurTexte;
- private HashMap<Integer, ImageIcon> image;
- private int nbrCarte;
- private ImageIcon defaultImageIcon;
- private int carteLargeur;
- private int carteHauteur;
- private int valeur;
- public Fenetre(Partie p){
- this.lecture = "";
- p.addObserver(this);
- this.carteLargeur = 82;
- this.carteHauteur = 104;
- this.initialiser = false;
- this.nbrCarte = 80;
- this.setTitle("Divinae Pandocreon");
- this.setSize(1280, 720);
- this.setLocationRelativeTo(null);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setResizable(false);
- this.image = new HashMap<Integer, ImageIcon>();
- this.setContentPane(new BackgroundPanel(new ImageIcon(" /BgAdv.png").getImage()));
- imageTerrain = new JButton[6][5];
- imageMain = new JButton[7];
- imageCentre = new JButton[5];
- texteTerrain = new JLabel[6];
- for (int i = 0; i < 6; i++){
- texteTerrain[i] = new JLabel("Terrain " + i);
- }
- this.defaultImageIcon = null;
- try {
- Image img = ImageIO.read(new File(" /carteVide.png"));
- Image resized = img.getScaledInstance(this.carteLargeur, this.carteHauteur, 0);
- this.defaultImageIcon = new ImageIcon(resized);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- ////Création HashMap avec les images des cartes
- for (int i = 1; i <= this.nbrCarte; i++){
- String chemin = " /" + i + ".png";
- Image img;
- try {
- System.out.println(chemin);
- img = ImageIO.read(new File(chemin));
- Image resized = img.getScaledInstance(this.carteLargeur, this.carteHauteur, img.SCALE_FAST);
- ImageIcon icon = new ImageIcon(resized);
- this.image.put(i, icon);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- ////////
- Box main = Box.createHorizontalBox();
- JPanel mainPanel = new JPanel();
- mainPanel.setBackground(Transparent);
- mainPanel.add(new JLabel("Votre Main"));
- for (int i = 0; i < 7; i++){
- this.valeur = i;
- imageMain[i]=new JButton(this.defaultImageIcon);
- imageMain[i].setMargin(new Insets(0,0,0,0));
- mainPanel.add(imageMain[i]);
- }
- imageMain[0].addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- p.setA("0");
- }
- });
- imageMain[1].addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- p.setA("1");
- }
- });
- imageMain[2].addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent event){
- p.setA("2");
- }
- });
- main.add(mainPanel);
- Box centre = Box.createHorizontalBox();
- JPanel centrePanel=new JPanel();
- centrePanel.setBackground(Transparent);
- JLabel centreTexte=new JLabel("Centre De La Table");
- centreTexte.setForeground(Color.white);
- centrePanel.add(centreTexte);
- for (int i = 0; i < 5; i++){
- imageCentre[i]=new JButton(this.defaultImageIcon);
- imageCentre[i].setMargin(new Insets(0,0,0,0));
- centrePanel.add(imageCentre[i]);
- }
- centre.add(centrePanel);
- for (int i = 0; i < 6; i++){
- for (int j = 0; j < 5; j++){
- imageTerrain[i][j]=new JButton(this.defaultImageIcon);
- imageTerrain[i][j].setMargin(new Insets(0,0,0,0));
- }
- }
- Box terrain1 = Box.createHorizontalBox();
- JPanel terrain1Panel= new JPanel();
- terrain1Panel.add(texteTerrain[0]);
- terrain1Panel.setBackground(Transparent);
- terrain1Panel.add(imageTerrain[0][0]);
- terrain1Panel.add(imageTerrain[0][1]);
- terrain1Panel.add(imageTerrain[0][2]);
- terrain1Panel.add(imageTerrain[0][3]);
- terrain1Panel.add(imageTerrain[0][4]);
- terrain1.add(Box.createHorizontalStrut(50));
- terrain1.add(terrain1Panel);
- Box terrain2 = Box.createHorizontalBox();
- JPanel terrain2Panel= new JPanel();
- terrain2Panel.setBackground(Transparent);
- terrain2Panel.add(texteTerrain[1]);
- terrain2Panel.add(imageTerrain[1][0]);
- terrain2Panel.add(imageTerrain[1][1]);
- terrain2Panel.add(imageTerrain[1][2]);
- terrain2Panel.add(imageTerrain[1][3]);
- terrain2Panel.add(imageTerrain[1][4]);
- terrain2.add(Box.createHorizontalStrut(50));
- terrain2.add(terrain2Panel);
- Box terrain3 = Box.createHorizontalBox();
- JPanel terrain3Panel= new JPanel();
- terrain3Panel.setBackground(Transparent);
- terrain3Panel.add(texteTerrain[2]);
- terrain3Panel.add(imageTerrain[2][0]);
- terrain3Panel.add(imageTerrain[2][1]);
- terrain3Panel.add(imageTerrain[2][2]);
- terrain3Panel.add(imageTerrain[2][3]);
- terrain3Panel.add(imageTerrain[2][4]);
- terrain3.add(Box.createHorizontalStrut(50));
- terrain3.add(terrain3Panel);
- JPanel terrain4Panel= new JPanel();
- terrain4Panel.setBackground(Transparent);
- terrain4Panel.add(texteTerrain[3]);
- terrain4Panel.add(imageTerrain[3][0]);
- terrain4Panel.add(imageTerrain[3][1]);
- terrain4Panel.add(imageTerrain[3][2]);
- terrain4Panel.add(imageTerrain[3][3]);
- terrain4Panel.add(imageTerrain[3][4]);
- terrain1.add(terrain4Panel);
- JPanel terrain5Panel= new JPanel();
- terrain5Panel.setBackground(Transparent);
- texteTerrain[4].setForeground(Color.white);
- terrain5Panel.add(texteTerrain[4]);
- terrain5Panel.add(imageTerrain[4][0]);
- terrain5Panel.add(imageTerrain[4][1]);
- terrain5Panel.add(imageTerrain[4][2]);
- terrain5Panel.add(imageTerrain[4][3]);
- terrain5Panel.add(imageTerrain[4][4]);
- terrain2.add(terrain5Panel);
- JPanel terrain6Panel= new JPanel();
- terrain6Panel.setBackground(Transparent);
- texteTerrain[5].setForeground(Color.white);
- terrain6Panel.add(texteTerrain[5]);
- terrain6Panel.add(imageTerrain[5][0]);
- terrain6Panel.add(imageTerrain[5][1]);
- terrain6Panel.add(imageTerrain[5][2]);
- terrain6Panel.add(imageTerrain[5][3]);
- terrain6Panel.add(imageTerrain[5][4]);
- terrain3.add(terrain6Panel);
- JButton Jouer=new JButton("Jouer");
- JButton Sacrifier=new JButton("Sacrifier");
- JButton Complete=new JButton("Compléter sa main");
- JButton Defausse=new JButton("Défausser des cartes");
- JButton Passe=new JButton("Passer son tour");
- JButton OK=new JButton("OK");
- Box actionJoueur = Box.createHorizontalBox();
- JPanel actionJoueurPanel= new JPanel();
- actionJoueurPanel.setBackground(Transparent);
- actionJoueurTexte=new JLabel("--------");
- actionJoueurTexte.setForeground(Color.white);
- actionJoueurPanel.add(actionJoueurTexte);
- actionJoueurPanel.add(Box.createHorizontalStrut(80));
- actionJoueurPanel.add(Jouer);
- actionJoueurPanel.add(Sacrifier);
- actionJoueurPanel.add(Complete);
- actionJoueurPanel.add(Defausse);
- actionJoueurPanel.add(Passe);
- actionJoueurPanel.add(OK);
- actionJoueurPanel.add(Box.createHorizontalStrut(80));
- actionJoueurPointTexte=new JLabel("Vos points : 0 Jour | 0 Nuit | 0 Néant");
- actionJoueurPointTexte.setForeground(Color.white);
- actionJoueurPanel.add(actionJoueurPointTexte);
- actionJoueur.add(actionJoueurPanel);
- Box zoneJeu = Box.createVerticalBox();
- zoneJeu.add(terrain1);
- zoneJeu.add(terrain2);
- zoneJeu.add(terrain3);
- zoneJeu.add(Box.createVerticalStrut(25));
- zoneJeu.add(centre);
- zoneJeu.add(Box.createVerticalStrut(25));
- zoneJeu.add(main);
- zoneJeu.add(actionJoueur);
- this.getContentPane().add(zoneJeu);
- this.setVisible(true);
- // for (int i = 0; i < )
- // int nombreJoueur;
- // try{
- // Scanner scan = new Scanner(lecture);
- // nombreJoueur = scan.nextInt();
- // System.out.println(nombreJoueur);
- // } catch (InputMismatchException e) {
- // e.printStackTrace();
- // }
- }
- public void ecriture(int valeur)
- {
- this.lecture = "" + valeur;
- this.p.setA(this.lecture);
- }
- @Override
- public void update(Observable arg0, Object arg1) {
- // TODO Auto-generated method stub
- if (!this.initialiser && arg0 instanceof Partie){
- for (int i = 0; i < ((Partie) arg1).getNbrJoueur(); i++){
- ((Partie) arg1).getJoueur(i).addObserver(this);
- ((Partie) arg1).getJoueur(i).getMain().addObserver(this);
- ((Partie) arg1).getJoueur(i).getTerrain().addObserver(this);
- }
- for (int i = 0; i < ((Partie) arg1).getPioche().getTasDeCarte().size(); i++){
- Carte c = ((Partie) arg1).getPioche().getTasDeCarte().get(i);
- if (c instanceof GuideSpirituel){
- c.addObserver(this);
- }
- }
- this.initialiser = true;
- ((Partie) arg1).setA(this.lecture);
- }
- else if (arg1 instanceof Partie){
- Partie partie = (Partie) arg1;
- for (int i = 0; i < partie.getNbrJoueur(); i++){
- texteTerrain[i].setText(partie.getJoueur(i).getNom() + " " + partie.getJoueur(i).getNombrePriereActuel() + " prières");
- for (int j = 0; j < partie.getJoueur(i).getTerrainSize(); j++){
- imageTerrain[i][j].setIcon(image.get(partie.getJoueur(i).getTerrain().getCompositionTerrain().get(j).getId()));
- imageTerrain[i][j].setToolTipText(partie.getJoueur(i).getTerrain().getCompositionTerrain().get(j).getCapacite().toString());
- }
- for (int j = partie.getJoueur(i).getTerrainSize(); j < 5; j++){
- imageTerrain[i][j].setIcon(this.defaultImageIcon);
- imageTerrain[i][j].setToolTipText(" ");
- }
- if (partie.getJoueur(i) instanceof JoueurHumain){
- this.actionJoueurPointTexte.setText("Vos point : " + partie.getJoueur(i).getNombrePointActionJour() + " Jour | "+ partie.getJoueur(i).getNombrePointActionNuit() + " Nuit | "+ partie.getJoueur(i).getNombrePointActionNeant() + " Neant");
- for (int j = 0; j < partie.getJoueur(i).getMainSize(); j++){
- imageMain[j].setIcon(image.get(partie.getJoueur(i).getMain().getCarteMain(j).getId()));
- imageMain[j].setToolTipText(partie.getJoueur(i).getMain().getCarteMain(j).getCapacite().toString());
- }
- for (int j = partie.getJoueur(i).getMainSize(); j < 7; j++){
- imageMain[j].setIcon(this.defaultImageIcon);
- imageMain[j].setToolTipText(" ");
- }
- }
- }
- for (int i = partie.getNbrJoueur(); i < 6; i++){
- for (int j = 0; j < 5; j++){
- imageTerrain[i][j].setIcon(defaultImageIcon);
- }
- }
- for (int i = 0; i < partie.getTableSize(); i++){
- imageCentre[i].setIcon(image.get(partie.getTable().getTable().get(i).getId()));
- imageCentre[i].setToolTipText(partie.getTable().getTable().get(i).getCapacite().toString());
- }
- for (int i = partie.getTableSize(); i < 5; i++){
- imageCentre[i].setIcon(this.defaultImageIcon);
- }
- }
- else if (arg1 instanceof CentreTable){
- CentreTable table = (CentreTable) arg1;
- for (int i = 0; i < table.getTable().size(); i++){
- imageCentre[i].setIcon(image.get(table.getTable().get(i).getId()));
- }
- }
- else if (arg1 instanceof String){
- String message = (String)arg1;
- actionJoueurTexte.setText(message);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement