Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.63 KB | None | 0 0
  1. package ile;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.GridLayout;
  7. import java.awt.event.MouseEvent;
  8. import java.awt.event.MouseListener;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.Iterator;
  12. import java.util.Map;
  13. import java.util.Set;
  14. import javax.swing.*;
  15. import java.awt.Graphics;
  16.  
  17. public class VuePlateau extends Observe {
  18.    
  19.     private JPanel mainPanel;
  20.     private JPanel grillePanel;
  21.     private ArrayList<Panel> panelCels;
  22.     private ArrayList<Panel> casesJoueurs;
  23.     private JPanel panelNord;
  24.     private JPanel panelSud;
  25.     private JPanel panelCalice;
  26.     private JPanel panelCristal;
  27.     private JPanel panelZephyr;
  28.     private JPanel panelPierre;
  29.     private JPanel panelEtat;
  30.     private JLabel etat;
  31.    
  32.    
  33.  
  34.     public VuePlateau(Grille g) {
  35.         //initialisation
  36.         casesJoueurs = new ArrayList<>();
  37.         mainPanel = new JPanel(new BorderLayout());
  38.         grillePanel = new JPanel(new GridLayout(6, 6));
  39.         mainPanel.add(grillePanel, BorderLayout.CENTER);
  40.         panelCels = new ArrayList<>();
  41.         //grille
  42.         for (int i = 1; i < 37; i++) {
  43.             JLabel lab = new JLabel(g.getCases().get(i).getNom(), SwingConstants.CENTER);
  44.             Panel panelCel = new Panel(g.getCases().get(i));
  45.             panelCels.add(panelCel);
  46.             for(int j = 0; j < g.getCases().get(i).getNbJoueursCase().size();j++) {
  47.                 Pion p = g.getCases().get(i).getNbJoueursCase().get(j).getPion();
  48.                 Color c;
  49.                 switch (p.getCouleur()) {
  50.                     case "BLEU":
  51.                         c = Color.BLUE;
  52.                         break;
  53.                     case "GRIS":
  54.                         c = Color.GRAY;
  55.                         break;
  56.                     case "JAUNE":
  57.                         c = Color.YELLOW;
  58.                         break;
  59.                     case "NOIR":
  60.                         c = Color.BLACK;
  61.                         break;
  62.                     case "ROUGE":
  63.                         c = Color.RED;
  64.                         break;
  65.                     default:
  66.                         c = Color.GREEN;
  67.                         break;
  68.                 }
  69.                 panelCel.getPanels().get(j).setBackground(c);
  70.                 casesJoueurs.add(panelCel);
  71.             }
  72.             if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
  73.                 panelCel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  74.                 if (g.getCases().get(i).getEtat().getEtat() == "SECHE") {
  75.                     panelCel.setBackground(Color.ORANGE);
  76.                     panelCel.setForeground(Color.ORANGE);
  77.                 } else if (g.getCases().get(i).getEtat().getEtat() == "INONDEE") {
  78.                     panelCel.setBackground(Color.CYAN);
  79.                     panelCel.setForeground(Color.CYAN);
  80.                 } else {
  81.                     panelCel.setBackground(Color.BLUE);
  82.                     panelCel.setForeground(Color.BLUE);
  83.                 }
  84.                 panelCel.addMouseListener(
  85.                         new MouseListener() {
  86.                     @Override
  87.                     public void mouseClicked(MouseEvent e) {
  88.                         Message m = new Message();
  89.                         m.t = panelCel.getTuile();
  90.                         m.type = TypesMessages.TYPE_TUILE;
  91.                         notifierObservateur(m);
  92.                        
  93.                     }
  94.  
  95.                     @Override
  96.                     public void mousePressed(MouseEvent e) {
  97.                     }
  98.  
  99.                     @Override
  100.                     public void mouseReleased(MouseEvent e) {
  101.                     }
  102.  
  103.                     @Override
  104.                     public void mouseEntered(MouseEvent e) {
  105.                     }
  106.  
  107.                     @Override
  108.                     public void mouseExited(MouseEvent e) {
  109.                     }
  110.                 }
  111.                 );
  112.             }
  113.             panelCel.add(lab);
  114.             grillePanel.add(panelCel);
  115.            
  116.            
  117.         }
  118.         //tresor + label etat
  119.         panelSud = new JPanel(new BorderLayout());
  120.         panelEtat = new JPanel();
  121.         etat = new JLabel("yolo");
  122.         panelZephyr = new JPanel();
  123.         panelZephyr.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  124.         panelZephyr.add(new JLabel("Zéphyr"));
  125.         panelPierre = new JPanel();
  126.         panelPierre.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  127.         panelPierre.add(new JLabel("Pierre"));
  128.         panelEtat.add(etat);
  129.         panelSud.add(panelZephyr,BorderLayout.WEST);
  130.         panelSud.add(panelEtat,BorderLayout.CENTER);
  131.         panelSud.add(panelPierre,BorderLayout.EAST);
  132.         mainPanel.add(panelSud,BorderLayout.SOUTH);
  133.         etat.setHorizontalAlignment(panelEtat.getWidth()/2);
  134.         etat.setVerticalAlignment(panelEtat.getHeight()/2);
  135.        
  136.         panelNord = new JPanel(new BorderLayout());
  137.         panelCalice = new JPanel();
  138.         panelCalice.add(new JLabel("Calice"));
  139.         panelCalice.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  140.         panelCristal = new JPanel();
  141.         panelCristal.add(new JLabel("Cristal"));
  142.         panelCristal.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  143.         panelNord.add(panelCalice,BorderLayout.WEST);
  144.         panelNord.add(panelCristal,BorderLayout.EAST);
  145.         mainPanel.add(panelNord,BorderLayout.NORTH);
  146.        
  147.        
  148.     }
  149.  
  150.     public void selectionnerUneCase(HashMap<Integer, Tuile> cases) {
  151.         Set<Map.Entry<Integer, Tuile>> set = cases.entrySet();
  152.         Iterator<Map.Entry<Integer, Tuile>> it = set.iterator();
  153.         Tuile t = new Tuile();
  154.         while (it.hasNext()) {
  155.             Map.Entry<Integer, Tuile> val = it.next();
  156.             t = val.getValue();
  157.             int i = t.getNum();
  158.             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"))) {
  159.                 Panel panelSelec = panelCels.get(i-1);
  160.                 panelSelec.setBorder(BorderFactory.createLineBorder(Color.GREEN, 2));
  161.                 validate();
  162.             }
  163.         }
  164.     }
  165.    
  166.     public void update(Grille g){
  167.         for (int i = 0; i < 35; i++) {
  168.             if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
  169.                 for(int j = 0; j < 4;j++) {
  170.                     panelCels.get(i-1).getPanels().get(j).setBackground(Color.WHITE);
  171.                 }
  172.             }            
  173.         }
  174.         for (int i = 1; i < 35; i++) {
  175.             for(int j = 0; j < g.getCases().get(i).getNbJoueursCase().size();j++) {
  176.                 Pion p = g.getCases().get(i).getNbJoueursCase().get(j).getPion();
  177.                 Color c;
  178.                 switch (p.getCouleur()) {
  179.                     case "BLEU":
  180.                         c = Color.BLUE;
  181.                         break;
  182.                     case "GRIS":
  183.                         c = Color.GRAY;
  184.                         break;
  185.                     case "JAUNE":
  186.                         c = Color.YELLOW;
  187.                         break;
  188.                     case "NOIR":
  189.                         c = Color.BLACK;
  190.                         break;
  191.                     case "ROUGE":
  192.                         c = Color.RED;
  193.                         break;
  194.                     default:
  195.                         c = Color.GREEN;
  196.                         break;
  197.                 }
  198.                 panelCels.get(i-1).getPanels().get(j).setBackground(c);
  199.                
  200.             }
  201.              if (i == 3 || i == 4 || (i >= 8 && i <= 11) || (i >= 13 && i <= 24) || (i >= 26 && i <= 29) || i == 33 || i == 34) {
  202.                 panelCels.get(i-1).setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  203.                 if (g.getCases().get(i).getEtat().getEtat() == "SECHE") {
  204.                     panelCels.get(i-1).setBackground(Color.ORANGE);
  205.                     panelCels.get(i-1).setForeground(Color.ORANGE);
  206.                 } else if (g.getCases().get(i).getEtat().getEtat() == "INONDEE") {
  207.                     panelCels.get(i-1).setBackground(Color.CYAN);
  208.                     panelCels.get(i-1).setForeground(Color.CYAN);
  209.                 } else {
  210.                     panelCels.get(i-1).setBackground(Color.BLUE);
  211.                     panelCels.get(i-1).setForeground(Color.BLUE);
  212.                 }
  213.             }
  214.         }
  215.         validate();
  216.         repaint();
  217.     }
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement