Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.22 KB | None | 0 0
  1. package VueGraphique;
  2.  
  3. import javax.swing.ImageIcon;
  4. import javax.swing.JButton;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JPanel;
  8.  
  9. import carte.Carte;
  10. import carte.GuideSpirituel;
  11. import partie.JoueurHumain;
  12. import partie.Partie;
  13. import terrain.CentreTable;
  14.  
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import java.awt.image.BufferedImage;
  18. import java.io.*;
  19. import java.util.HashMap;
  20. import java.util.InputMismatchException;
  21. import java.util.Observable;
  22. import java.util.Observer;
  23. import java.util.Scanner;
  24. import java.awt.Color;
  25. import java.awt.Component;
  26. import java.awt.Dimension;
  27. import java.awt.Image;
  28. import java.awt.Insets;
  29.  
  30. import javax.imageio.ImageIO;
  31. import javax.swing.Box;
  32. import javax.swing.Icon;
  33.  
  34.  
  35. public class Fenetre extends JFrame implements Observer{
  36.  
  37. /**
  38. *
  39. */
  40. private static final long serialVersionUID = 1L;
  41. public static int valeurCase=0;
  42. Color Transparent= new Color(0,0,0,0);
  43. private String lecture;
  44. private Partie p;
  45. private boolean initialiser;
  46. private JButton[][] imageTerrain;
  47. private JButton[] imageMain;
  48. private JButton[] imageCentre;
  49. private JLabel[] texteTerrain;
  50. private JLabel actionJoueurPointTexte;
  51. private JLabel actionJoueurTexte;
  52. private HashMap<Integer, ImageIcon> image;
  53. private int nbrCarte;
  54. private ImageIcon defaultImageIcon;
  55. private int carteLargeur;
  56. private int carteHauteur;
  57. private int valeur;
  58.  
  59. public Fenetre(Partie p){
  60. this.lecture = "";
  61. p.addObserver(this);
  62. this.carteLargeur = 82;
  63. this.carteHauteur = 104;
  64. this.initialiser = false;
  65. this.nbrCarte = 80;
  66. this.setTitle("Divinae Pandocreon");
  67. this.setSize(1280, 720);
  68. this.setLocationRelativeTo(null);
  69. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  70. this.setResizable(false);
  71. this.image = new HashMap<Integer, ImageIcon>();
  72.  
  73. this.setContentPane(new BackgroundPanel(new ImageIcon(" /BgAdv.png").getImage()));
  74.  
  75. imageTerrain = new JButton[6][5];
  76. imageMain = new JButton[7];
  77. imageCentre = new JButton[5];
  78. texteTerrain = new JLabel[6];
  79.  
  80. for (int i = 0; i < 6; i++){
  81. texteTerrain[i] = new JLabel("Terrain " + i);
  82. }
  83.  
  84. this.defaultImageIcon = null;
  85. try {
  86. Image img = ImageIO.read(new File(" /carteVide.png"));
  87. Image resized = img.getScaledInstance(this.carteLargeur, this.carteHauteur, 0);
  88. this.defaultImageIcon = new ImageIcon(resized);
  89. } catch (IOException e) {
  90. // TODO Auto-generated catch block
  91. e.printStackTrace();
  92. }
  93.  
  94. ////Création HashMap avec les images des cartes
  95. for (int i = 1; i <= this.nbrCarte; i++){
  96. String chemin = " /" + i + ".png";
  97. Image img;
  98. try {
  99. System.out.println(chemin);
  100. img = ImageIO.read(new File(chemin));
  101. Image resized = img.getScaledInstance(this.carteLargeur, this.carteHauteur, img.SCALE_FAST);
  102. ImageIcon icon = new ImageIcon(resized);
  103. this.image.put(i, icon);
  104. } catch (IOException e) {
  105. // TODO Auto-generated catch block
  106. e.printStackTrace();
  107. }
  108. }
  109. ////////
  110. Box main = Box.createHorizontalBox();
  111. JPanel mainPanel = new JPanel();
  112. mainPanel.setBackground(Transparent);
  113. mainPanel.add(new JLabel("Votre Main"));
  114. for (int i = 0; i < 7; i++){
  115. this.valeur = i;
  116. imageMain[i]=new JButton(this.defaultImageIcon);
  117. imageMain[i].setMargin(new Insets(0,0,0,0));
  118. mainPanel.add(imageMain[i]);
  119. }
  120. imageMain[0].addActionListener(new ActionListener(){
  121. public void actionPerformed(ActionEvent event){
  122. p.setA("0");
  123. }
  124. });
  125. imageMain[1].addActionListener(new ActionListener(){
  126. public void actionPerformed(ActionEvent event){
  127. p.setA("1");
  128. }
  129. });
  130. imageMain[2].addActionListener(new ActionListener(){
  131. public void actionPerformed(ActionEvent event){
  132. p.setA("2");
  133. }
  134. });
  135. main.add(mainPanel);
  136.  
  137. Box centre = Box.createHorizontalBox();
  138. JPanel centrePanel=new JPanel();
  139. centrePanel.setBackground(Transparent);
  140. JLabel centreTexte=new JLabel("Centre De La Table");
  141. centreTexte.setForeground(Color.white);
  142. centrePanel.add(centreTexte);
  143.  
  144. for (int i = 0; i < 5; i++){
  145. imageCentre[i]=new JButton(this.defaultImageIcon);
  146. imageCentre[i].setMargin(new Insets(0,0,0,0));
  147. centrePanel.add(imageCentre[i]);
  148. }
  149. centre.add(centrePanel);
  150.  
  151. for (int i = 0; i < 6; i++){
  152. for (int j = 0; j < 5; j++){
  153. imageTerrain[i][j]=new JButton(this.defaultImageIcon);
  154. imageTerrain[i][j].setMargin(new Insets(0,0,0,0));
  155. }
  156. }
  157.  
  158. Box terrain1 = Box.createHorizontalBox();
  159. JPanel terrain1Panel= new JPanel();
  160. terrain1Panel.add(texteTerrain[0]);
  161. terrain1Panel.setBackground(Transparent);
  162. terrain1Panel.add(imageTerrain[0][0]);
  163. terrain1Panel.add(imageTerrain[0][1]);
  164. terrain1Panel.add(imageTerrain[0][2]);
  165. terrain1Panel.add(imageTerrain[0][3]);
  166. terrain1Panel.add(imageTerrain[0][4]);
  167. terrain1.add(Box.createHorizontalStrut(50));
  168. terrain1.add(terrain1Panel);
  169.  
  170.  
  171. Box terrain2 = Box.createHorizontalBox();
  172. JPanel terrain2Panel= new JPanel();
  173. terrain2Panel.setBackground(Transparent);
  174. terrain2Panel.add(texteTerrain[1]);
  175. terrain2Panel.add(imageTerrain[1][0]);
  176. terrain2Panel.add(imageTerrain[1][1]);
  177. terrain2Panel.add(imageTerrain[1][2]);
  178. terrain2Panel.add(imageTerrain[1][3]);
  179. terrain2Panel.add(imageTerrain[1][4]);
  180. terrain2.add(Box.createHorizontalStrut(50));
  181. terrain2.add(terrain2Panel);
  182.  
  183. Box terrain3 = Box.createHorizontalBox();
  184. JPanel terrain3Panel= new JPanel();
  185. terrain3Panel.setBackground(Transparent);
  186. terrain3Panel.add(texteTerrain[2]);
  187. terrain3Panel.add(imageTerrain[2][0]);
  188. terrain3Panel.add(imageTerrain[2][1]);
  189. terrain3Panel.add(imageTerrain[2][2]);
  190. terrain3Panel.add(imageTerrain[2][3]);
  191. terrain3Panel.add(imageTerrain[2][4]);
  192. terrain3.add(Box.createHorizontalStrut(50));
  193. terrain3.add(terrain3Panel);
  194.  
  195. JPanel terrain4Panel= new JPanel();
  196. terrain4Panel.setBackground(Transparent);
  197. terrain4Panel.add(texteTerrain[3]);
  198. terrain4Panel.add(imageTerrain[3][0]);
  199. terrain4Panel.add(imageTerrain[3][1]);
  200. terrain4Panel.add(imageTerrain[3][2]);
  201. terrain4Panel.add(imageTerrain[3][3]);
  202. terrain4Panel.add(imageTerrain[3][4]);
  203. terrain1.add(terrain4Panel);
  204.  
  205. JPanel terrain5Panel= new JPanel();
  206. terrain5Panel.setBackground(Transparent);
  207. texteTerrain[4].setForeground(Color.white);
  208. terrain5Panel.add(texteTerrain[4]);
  209. terrain5Panel.add(imageTerrain[4][0]);
  210. terrain5Panel.add(imageTerrain[4][1]);
  211. terrain5Panel.add(imageTerrain[4][2]);
  212. terrain5Panel.add(imageTerrain[4][3]);
  213. terrain5Panel.add(imageTerrain[4][4]);
  214. terrain2.add(terrain5Panel);
  215.  
  216. JPanel terrain6Panel= new JPanel();
  217. terrain6Panel.setBackground(Transparent);
  218. texteTerrain[5].setForeground(Color.white);
  219. terrain6Panel.add(texteTerrain[5]);
  220. terrain6Panel.add(imageTerrain[5][0]);
  221. terrain6Panel.add(imageTerrain[5][1]);
  222. terrain6Panel.add(imageTerrain[5][2]);
  223. terrain6Panel.add(imageTerrain[5][3]);
  224. terrain6Panel.add(imageTerrain[5][4]);
  225. terrain3.add(terrain6Panel);
  226.  
  227. JButton Jouer=new JButton("Jouer");
  228. JButton Sacrifier=new JButton("Sacrifier");
  229. JButton Complete=new JButton("Compléter sa main");
  230. JButton Defausse=new JButton("Défausser des cartes");
  231. JButton Passe=new JButton("Passer son tour");
  232. JButton OK=new JButton("OK");
  233. Box actionJoueur = Box.createHorizontalBox();
  234. JPanel actionJoueurPanel= new JPanel();
  235. actionJoueurPanel.setBackground(Transparent);
  236. actionJoueurTexte=new JLabel("--------");
  237. actionJoueurTexte.setForeground(Color.white);
  238. actionJoueurPanel.add(actionJoueurTexte);
  239. actionJoueurPanel.add(Box.createHorizontalStrut(80));
  240. actionJoueurPanel.add(Jouer);
  241. actionJoueurPanel.add(Sacrifier);
  242. actionJoueurPanel.add(Complete);
  243. actionJoueurPanel.add(Defausse);
  244. actionJoueurPanel.add(Passe);
  245. actionJoueurPanel.add(OK);
  246. actionJoueurPanel.add(Box.createHorizontalStrut(80));
  247. actionJoueurPointTexte=new JLabel("Vos points : 0 Jour | 0 Nuit | 0 Néant");
  248. actionJoueurPointTexte.setForeground(Color.white);
  249. actionJoueurPanel.add(actionJoueurPointTexte);
  250. actionJoueur.add(actionJoueurPanel);
  251.  
  252. Box zoneJeu = Box.createVerticalBox();
  253. zoneJeu.add(terrain1);
  254. zoneJeu.add(terrain2);
  255. zoneJeu.add(terrain3);
  256. zoneJeu.add(Box.createVerticalStrut(25));
  257. zoneJeu.add(centre);
  258. zoneJeu.add(Box.createVerticalStrut(25));
  259. zoneJeu.add(main);
  260. zoneJeu.add(actionJoueur);
  261.  
  262. this.getContentPane().add(zoneJeu);
  263. this.setVisible(true);
  264.  
  265. // for (int i = 0; i < )
  266. // int nombreJoueur;
  267. // try{
  268. // Scanner scan = new Scanner(lecture);
  269. // nombreJoueur = scan.nextInt();
  270. // System.out.println(nombreJoueur);
  271. // } catch (InputMismatchException e) {
  272. // e.printStackTrace();
  273. // }
  274. }
  275.  
  276. public void ecriture(int valeur)
  277. {
  278. this.lecture = "" + valeur;
  279. this.p.setA(this.lecture);
  280. }
  281.  
  282. @Override
  283. public void update(Observable arg0, Object arg1) {
  284. // TODO Auto-generated method stub
  285. if (!this.initialiser && arg0 instanceof Partie){
  286. for (int i = 0; i < ((Partie) arg1).getNbrJoueur(); i++){
  287. ((Partie) arg1).getJoueur(i).addObserver(this);
  288. ((Partie) arg1).getJoueur(i).getMain().addObserver(this);
  289. ((Partie) arg1).getJoueur(i).getTerrain().addObserver(this);
  290. }
  291. for (int i = 0; i < ((Partie) arg1).getPioche().getTasDeCarte().size(); i++){
  292. Carte c = ((Partie) arg1).getPioche().getTasDeCarte().get(i);
  293. if (c instanceof GuideSpirituel){
  294. c.addObserver(this);
  295. }
  296. }
  297. this.initialiser = true;
  298. ((Partie) arg1).setA(this.lecture);
  299. }
  300.  
  301.  
  302. else if (arg1 instanceof Partie){
  303. Partie partie = (Partie) arg1;
  304. for (int i = 0; i < partie.getNbrJoueur(); i++){
  305. texteTerrain[i].setText(partie.getJoueur(i).getNom() + " " + partie.getJoueur(i).getNombrePriereActuel() + " prières");
  306. for (int j = 0; j < partie.getJoueur(i).getTerrainSize(); j++){
  307. imageTerrain[i][j].setIcon(image.get(partie.getJoueur(i).getTerrain().getCompositionTerrain().get(j).getId()));
  308. imageTerrain[i][j].setToolTipText(partie.getJoueur(i).getTerrain().getCompositionTerrain().get(j).getCapacite().toString());
  309. }
  310. for (int j = partie.getJoueur(i).getTerrainSize(); j < 5; j++){
  311. imageTerrain[i][j].setIcon(this.defaultImageIcon);
  312. imageTerrain[i][j].setToolTipText(" ");
  313. }
  314. if (partie.getJoueur(i) instanceof JoueurHumain){
  315. this.actionJoueurPointTexte.setText("Vos point : " + partie.getJoueur(i).getNombrePointActionJour() + " Jour | "+ partie.getJoueur(i).getNombrePointActionNuit() + " Nuit | "+ partie.getJoueur(i).getNombrePointActionNeant() + " Neant");
  316. for (int j = 0; j < partie.getJoueur(i).getMainSize(); j++){
  317. imageMain[j].setIcon(image.get(partie.getJoueur(i).getMain().getCarteMain(j).getId()));
  318. imageMain[j].setToolTipText(partie.getJoueur(i).getMain().getCarteMain(j).getCapacite().toString());
  319. }
  320. for (int j = partie.getJoueur(i).getMainSize(); j < 7; j++){
  321. imageMain[j].setIcon(this.defaultImageIcon);
  322. imageMain[j].setToolTipText(" ");
  323. }
  324. }
  325. }
  326. for (int i = partie.getNbrJoueur(); i < 6; i++){
  327. for (int j = 0; j < 5; j++){
  328. imageTerrain[i][j].setIcon(defaultImageIcon);
  329. }
  330. }
  331. for (int i = 0; i < partie.getTableSize(); i++){
  332. imageCentre[i].setIcon(image.get(partie.getTable().getTable().get(i).getId()));
  333. imageCentre[i].setToolTipText(partie.getTable().getTable().get(i).getCapacite().toString());
  334. }
  335. for (int i = partie.getTableSize(); i < 5; i++){
  336. imageCentre[i].setIcon(this.defaultImageIcon);
  337. }
  338. }
  339.  
  340. else if (arg1 instanceof CentreTable){
  341. CentreTable table = (CentreTable) arg1;
  342. for (int i = 0; i < table.getTable().size(); i++){
  343. imageCentre[i].setIcon(image.get(table.getTable().get(i).getId()));
  344. }
  345. }
  346. else if (arg1 instanceof String){
  347. String message = (String)arg1;
  348. actionJoueurTexte.setText(message);
  349. }
  350. }
  351. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement