Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ile;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.GridLayout;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- import javax.swing.*;
- import java.awt.Graphics;
- public class VuePlateau extends Observe {
- private JPanel mainPanel;
- private JPanel grillePanel;
- private ArrayList<Panel> panelCels;
- private ArrayList<Panel> casesJoueurs;
- private JPanel panelNord;
- private JPanel panelSud;
- private JPanel panelCalice;
- private JPanel panelCristal;
- private JPanel panelZephyr;
- private JPanel panelPierre;
- private JPanel panelEtat;
- private JLabel etat;
- public VuePlateau(Grille g) {
- //initialisation
- casesJoueurs = new ArrayList<>();
- mainPanel = new JPanel(new BorderLayout());
- grillePanel = new JPanel(new GridLayout(6, 6));
- mainPanel.add(grillePanel, BorderLayout.CENTER);
- panelCels = new ArrayList<>();
- //grille
- for (int i = 1; i < 37; i++) {
- JLabel lab = new JLabel(g.getCases().get(i).getNom(), SwingConstants.CENTER);
- Panel panelCel = new Panel(g.getCases().get(i));
- panelCels.add(panelCel);
- for(int j = 0; j < g.getCases().get(i).getNbJoueursCase().size();j++) {
- Pion p = g.getCases().get(i).getNbJoueursCase().get(j).getPion();
- Color c;
- switch (p.getCouleur()) {
- case "BLEU":
- c = Color.BLUE;
- break;
- case "GRIS":
- c = Color.GRAY;
- break;
- case "JAUNE":
- c = Color.YELLOW;
- break;
- case "NOIR":
- c = Color.BLACK;
- break;
- case "ROUGE":
- c = Color.RED;
- break;
- default:
- c = Color.GREEN;
- break;
- }
- panelCel.getPanels().get(j).setBackground(c);
- casesJoueurs.add(panelCel);
- }
- if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
- panelCel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- if (g.getCases().get(i).getEtat().getEtat() == "SECHE") {
- panelCel.setBackground(Color.ORANGE);
- panelCel.setForeground(Color.ORANGE);
- } else if (g.getCases().get(i).getEtat().getEtat() == "INONDEE") {
- panelCel.setBackground(Color.CYAN);
- panelCel.setForeground(Color.CYAN);
- } else {
- panelCel.setBackground(Color.BLUE);
- panelCel.setForeground(Color.BLUE);
- }
- panelCel.addMouseListener(
- new MouseListener() {
- @Override
- public void mouseClicked(MouseEvent e) {
- Message m = new Message();
- m.t = panelCel.getTuile();
- m.type = TypesMessages.TYPE_TUILE;
- notifierObservateur(m);
- }
- @Override
- public void mousePressed(MouseEvent e) {
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- }
- @Override
- public void mouseEntered(MouseEvent e) {
- }
- @Override
- public void mouseExited(MouseEvent e) {
- }
- }
- );
- }
- panelCel.add(lab);
- grillePanel.add(panelCel);
- }
- //tresor + label etat
- panelSud = new JPanel(new BorderLayout());
- panelEtat = new JPanel();
- etat = new JLabel("yolo");
- panelZephyr = new JPanel();
- panelZephyr.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- panelZephyr.add(new JLabel("Zéphyr"));
- panelPierre = new JPanel();
- panelPierre.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- panelPierre.add(new JLabel("Pierre"));
- panelEtat.add(etat);
- panelSud.add(panelZephyr,BorderLayout.WEST);
- panelSud.add(panelEtat,BorderLayout.CENTER);
- panelSud.add(panelPierre,BorderLayout.EAST);
- mainPanel.add(panelSud,BorderLayout.SOUTH);
- etat.setHorizontalAlignment(panelEtat.getWidth()/2);
- etat.setVerticalAlignment(panelEtat.getHeight()/2);
- panelNord = new JPanel(new BorderLayout());
- panelCalice = new JPanel();
- panelCalice.add(new JLabel("Calice"));
- panelCalice.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- panelCristal = new JPanel();
- panelCristal.add(new JLabel("Cristal"));
- panelCristal.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- panelNord.add(panelCalice,BorderLayout.WEST);
- panelNord.add(panelCristal,BorderLayout.EAST);
- mainPanel.add(panelNord,BorderLayout.NORTH);
- }
- public void selectionnerUneCase(HashMap<Integer, Tuile> cases) {
- Set<Map.Entry<Integer, Tuile>> set = cases.entrySet();
- Iterator<Map.Entry<Integer, Tuile>> it = set.iterator();
- Tuile t = new Tuile();
- while (it.hasNext()) {
- Map.Entry<Integer, Tuile> val = it.next();
- t = val.getValue();
- int i = t.getNum();
- if ((i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) && !(t.getEtat().etat.equals("SOMBREE"))) {
- Panel panelSelec = panelCels.get(i-1);
- panelSelec.setBorder(BorderFactory.createLineBorder(Color.GREEN, 2));
- validate();
- }
- }
- }
- public void update(Grille g){
- for (int i = 0; i < 35; i++) {
- if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
- for(int j = 0; j < 4;j++) {
- panelCels.get(i-1).getPanels().get(j).setBackground(Color.WHITE);
- }
- }
- }
- for (int i = 1; i < 35; i++) {
- for(int j = 0; j < g.getCases().get(i).getNbJoueursCase().size();j++) {
- Pion p = g.getCases().get(i).getNbJoueursCase().get(j).getPion();
- Color c;
- switch (p.getCouleur()) {
- case "BLEU":
- c = Color.BLUE;
- break;
- case "GRIS":
- c = Color.GRAY;
- break;
- case "JAUNE":
- c = Color.YELLOW;
- break;
- case "NOIR":
- c = Color.BLACK;
- break;
- case "ROUGE":
- c = Color.RED;
- break;
- default:
- c = Color.GREEN;
- break;
- }
- panelCels.get(i-1).getPanels().get(j).setBackground(c);
- }
- if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
- panelCels.get(i-1).setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
- if (g.getCases().get(i).getEtat().getEtat() == "SECHE") {
- panelCels.get(i-1).setBackground(Color.ORANGE);
- panelCels.get(i-1).setForeground(Color.ORANGE);
- } else if (g.getCases().get(i).getEtat().getEtat() == "INONDEE") {
- panelCels.get(i-1).setBackground(Color.CYAN);
- panelCels.get(i-1).setForeground(Color.CYAN);
- } else {
- panelCels.get(i-1).setBackground(Color.BLUE);
- panelCels.get(i-1).setForeground(Color.BLUE);
- }
- }
- }
- validate();
- repaint();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement