Guest User

Untitled

a guest
Jun 17th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.81 KB | None | 0 0
  1. package javaapplicationca2;
  2.  
  3. import java.awt.*;
  4. import javax.swing.*;
  5. import java.awt.event.*;
  6. import javax.swing.border.Border;
  7. import java.applet.*;
  8. import java.io.*;
  9.  
  10. public class GameFrame extends JFrame implements ActionListener, ItemListener {
  11.  
  12. //menu
  13. private JMenu cheatMenu;
  14. private JMenuBar menuBar;
  15. private JMenu musicMenu;
  16. private JMenuItem Music1;
  17. private JMenuItem Music2;
  18. private JMenuItem Music3;
  19. private JMenuItem MusicOff;
  20. private JMenuItem cheat1;
  21. private JMenu about;
  22. private JMenuItem about1;
  23. //
  24. private JPanel mainpanel = new JPanel(new BorderLayout());
  25. private CardGame cardgame = new CardGame();
  26. private CardGame computerCards = new CardGame();
  27. //top panel
  28. private JPanel mnorthPnl, northPnl1, centerPnl1, southPnl1, judgementPnl, buttons, playerName;
  29. private JButton leftBtn;
  30. private ImageIcon questionmark;
  31. private JButton rightBtn;
  32. private ImageIcon backimg;
  33. private Card[] computercard = new Card[5];
  34. private JButton card;
  35. private JLabel gametitle, player, computer;
  36. //center panel
  37. private JPanel mcenterPnl;
  38. private JButton[] chooseCard;
  39. private Card[] playercards = new Card[5];
  40. //bottom panel
  41. private JPanel msouthPnl, centerPnl3, southPnl3, controlPnlBtm;
  42. private JTextArea txt;
  43. private String[] Btnname = {"Restart", "History", "Exit"};
  44. private JButton[] controlBtnArr = new JButton[Btnname.length];
  45. private int win = 0, lose = 0, draw = 0;
  46. private JTextArea textArea;
  47. private String username;
  48. // ADDITIONAL FEATURES
  49. private String[] bkgdFilenameStr = {
  50. "",
  51. "explosion.jpg",
  52. "pebbles.jpg",
  53. "nature.jpg"};
  54. private ImageIcon[] bkImgArr = new ImageIcon[bkgdFilenameStr.length];
  55. private TileBackgroundPanel backgroundPanel; // for the background
  56. private String[] bkChoiceStr = {"Default", "Explosion", "Pebbles", "Nature"};
  57. private JComboBox choiceList = new JComboBox(bkChoiceStr);
  58. //end of addtional features
  59. //music stuff
  60. AudioClip bkmusic;
  61. AudioClip beethoven;
  62. //
  63.  
  64. public GameFrame(String title) {
  65. super(title);
  66. loadBkImg(); // load background images
  67.  
  68. // Make use of the TileBackgroundPanel as the main panel
  69. backgroundPanel = new TileBackgroundPanel(bkImgArr[0]);
  70. backgroundPanel.setTileImage(false);
  71. setContentPane(backgroundPanel);
  72. // set it as the main panel of the frame
  73.  
  74. initTestPanel();
  75.  
  76. getContentPane().setLayout(new BorderLayout());
  77.  
  78. setSize(750, 700);
  79.  
  80.  
  81. //Start of mnorthPnl//
  82. username = cardgame.setUserName();
  83. mnorthPnl = new JPanel(new BorderLayout());
  84. mnorthPnl.setOpaque(false);
  85. centerPnl1 = new JPanel(new BorderLayout());
  86. centerPnl1.setOpaque(false);
  87. southPnl1 = new JPanel(new BorderLayout());
  88. southPnl1.setOpaque(false);
  89. judgementPnl = new JPanel(new BorderLayout());
  90. judgementPnl.setOpaque(false);
  91. buttons = new JPanel(new GridLayout(1, 0));
  92. buttons.setOpaque(false);
  93. playerName = new JPanel(new GridLayout(1, 0));
  94. playerName.setOpaque(false);
  95.  
  96. menuBar = new JMenuBar();
  97.  
  98. musicMenu = new JMenu("Music");
  99. Music1 = new JMenuItem("Music 1");
  100. Music1.addActionListener(this);
  101. Music2 = new JMenuItem("Music 2");
  102. Music2.addActionListener(this);
  103. Music3 = new JMenuItem("Music 3");
  104. MusicOff = new JMenuItem("OFf");
  105. cheatMenu = new JMenu("Cheats");
  106. cheat1 = new JMenuItem("Cheat");
  107. about = new JMenu("About");
  108. about1 = new JMenuItem("Credits");
  109. about1.addActionListener(this);
  110.  
  111. musicMenu.add(Music1);
  112. musicMenu.add(Music2);
  113. musicMenu.add(Music3);
  114. musicMenu.add(MusicOff);
  115. cheatMenu.add(cheat1);
  116. about.add(about1);
  117. menuBar.add(about);
  118. menuBar.add(musicMenu);
  119. menuBar.add(cheatMenu);
  120. northPnl1.add(menuBar);
  121.  
  122.  
  123. //centerPnl1//
  124. gametitle = new JLabel(new ImageIcon("banner.png"), JLabel.CENTER);
  125.  
  126. //left side button
  127. player = new JLabel(username + ":", JLabel.CENTER);
  128. player.setFont(new Font("calbri", Font.BOLD, 20));
  129. player.setForeground(Color.red);
  130. leftBtn = new JButton(questionmark = new ImageIcon("question.png"));
  131. leftBtn.setPreferredSize(new Dimension(0, 170));
  132. leftBtn.setContentAreaFilled(false);
  133. leftBtn.setOpaque(false);
  134.  
  135. playerName.add(player);
  136. //end of left side button
  137.  
  138. //right side button
  139. computer = new JLabel("Computer: ", JLabel.CENTER);
  140. computer.setFont(new Font("calbri", Font.BOLD, 20));
  141. computer.setForeground(Color.red);
  142. rightBtn = new JButton(backimg = new ImageIcon("backimg.jpg"));
  143. rightBtn.setPreferredSize(new Dimension(0, 100));
  144. rightBtn.setContentAreaFilled(false);
  145. rightBtn.setOpaque(false);
  146.  
  147. playerName.add(computer);
  148. for (int i = 0; i < computercard.length; i++) {
  149. computercard[i] = computerCards.callcard();
  150. computerCards.dealcard();
  151. }
  152. //end of right side button
  153.  
  154. buttons.add(leftBtn);
  155. buttons.add(rightBtn);
  156. judgementPnl.add(playerName, BorderLayout.NORTH);
  157. judgementPnl.add(buttons, BorderLayout.SOUTH);
  158.  
  159.  
  160. centerPnl1.add(gametitle);
  161. southPnl1.add(judgementPnl);
  162.  
  163. mnorthPnl.add(centerPnl1, BorderLayout.CENTER);
  164. mnorthPnl.add(northPnl1, BorderLayout.NORTH);
  165. mnorthPnl.add(southPnl1, BorderLayout.SOUTH);
  166. //end of mnorthPnl //
  167.  
  168. //Start of mcenterPnl//
  169. mcenterPnl = new JPanel(new GridLayout(1, 5));
  170. mcenterPnl.setOpaque(false);
  171. chooseCard = new JButton[5];
  172.  
  173. for (int i = 0; i < chooseCard.length; i++) {
  174. playercards[i] = cardgame.callcard();
  175. //imageicon for player cards
  176. chooseCard[i] = new JButton(playercards[i].getCardImage());
  177. chooseCard[i].setOpaque(false);
  178. chooseCard[i].setContentAreaFilled(false);
  179. mcenterPnl.add(chooseCard[i]);
  180. chooseCard[i].addActionListener(this);
  181. cardgame.dealcard();
  182. }
  183. mcenterPnl.setBorder(BorderFactory.createTitledBorder(null, "Pick Your Card", 0, 0, null, Color.RED));
  184. //end of Center panel//
  185.  
  186. //start of bottom panel//
  187. txt = new JTextArea();
  188. txt.setPreferredSize(new Dimension(0, 100));
  189. txt.setFont(new Font("calbri", Font.BOLD, 17));
  190. txt.setText("Number of times Player won: " + win + "\n"
  191. + "Number of times Computer won: " + lose + "\n"
  192. + "Number of times Drawn: " + draw);
  193.  
  194.  
  195. msouthPnl = new JPanel(new BorderLayout());
  196. msouthPnl.setOpaque(false);
  197. centerPnl3 = new JPanel(new BorderLayout());
  198. centerPnl3.setOpaque(false);
  199. southPnl3 = new JPanel(new GridLayout(0, 3));
  200. southPnl3.setOpaque(false);
  201. centerPnl3.add(txt);
  202.  
  203. for (int i = 0; i < Btnname.length; i++) {
  204. controlBtnArr[i] = new JButton(Btnname[i]);
  205. controlBtnArr[i].setBackground(Color.BLACK);
  206. controlBtnArr[i].setForeground(Color.white);
  207. southPnl3.add(controlBtnArr[i]);
  208. controlBtnArr[i].addActionListener(this);
  209. }
  210.  
  211. msouthPnl.add(centerPnl3, BorderLayout.CENTER);
  212. msouthPnl.add(southPnl3, BorderLayout.SOUTH);
  213.  
  214. centerPnl3.setBorder(BorderFactory.createTitledBorder(null, "Score Sheet", 0, 0, null, Color.RED));
  215. //end of bottom panel//
  216.  
  217.  
  218. mainpanel.add(mnorthPnl, BorderLayout.NORTH);
  219. mainpanel.add(mcenterPnl, BorderLayout.CENTER);
  220. mainpanel.add(msouthPnl, BorderLayout.SOUTH);
  221. mainpanel.setOpaque(false);
  222.  
  223. add(mainpanel, BorderLayout.CENTER);
  224.  
  225. //combobox and change bacckground stuff
  226.  
  227.  
  228.  
  229. }
  230.  
  231. public void actionPerformed(ActionEvent e) {
  232. for (int i = 0; i < 5; i++) {
  233. if (e.getSource() == chooseCard[i]) {
  234.  
  235. leftBtn.setIcon(playercards[i].getCardImage());
  236. chooseCard[i].setIcon(playercards[i].getCardDisabledImg());
  237. chooseCard[i].setEnabled(false);
  238. rightBtn.setIcon(computercard[i].getCardImage());
  239. if (computercard[i].isHigher(playercards[i])) {
  240. JOptionPane.showMessageDialog(mcenterPnl, cardgame.getUser() + " has failed Fucking miserably!");
  241. cardgame.setResult(cardgame.getResultText(playercards[i].number, playercards[i].suit)
  242. + "\t" + cardgame.getResultText(computercard[i].number, computercard[i].suit) + "\t" + cardgame.getUser() + " Has Lost\n");
  243. lose++;
  244.  
  245. } else if (playercards[i].isHigher(computercard[i])) {
  246. JOptionPane.showMessageDialog(mcenterPnl, cardgame.getUser() + " Is Fucking Victorious!");
  247. cardgame.setResult(cardgame.getResultText(playercards[i].number, playercards[i].suit)
  248. + "\t" + cardgame.getResultText(computercard[i].number, computercard[i].suit) + "\t" + cardgame.getUser() + " Has Won\n");
  249. win++;
  250.  
  251.  
  252. } else {
  253. JOptionPane.showMessageDialog(mcenterPnl, cardgame.getUser() + " and Computer have drawn");
  254. cardgame.setResult(cardgame.getResultText(playercards[i].number, playercards[i].suit)
  255. + "\t" + cardgame.getResultText(computercard[i].number, computercard[i].suit) + "\t" + cardgame.getUser() + " and computer draw\n");
  256. draw++;
  257.  
  258. }
  259. leftBtn.setIcon(questionmark);
  260. rightBtn.setIcon(backimg);
  261.  
  262. txt.setText("Number of times Player won: " + win + "\n"
  263. + "Number of times Computer won: " + lose + "\n"
  264. + "Number of times Drawn: " + draw);
  265. break;
  266.  
  267. }
  268.  
  269. }
  270.  
  271.  
  272. if (e.getSource() == controlBtnArr[0]) {
  273. for (int i = 0; i <= 4; i++) {
  274. chooseCard[i].setEnabled(true);
  275. }
  276. win = 0;
  277. lose = 0;
  278. draw = 0;
  279. txt.setText("Number of times Player won: " + win + "\n"
  280. + "Number of times Computer won: " + lose + "\n"
  281. + "Number of times Drawn: " + draw);
  282.  
  283. JTextArea textArea = new JTextArea(5, 50);
  284. textArea.setEditable(false);
  285. textArea.setText(cardgame.getResult());
  286. JOptionPane.showMessageDialog(this, textArea, "Results of last game", JOptionPane.INFORMATION_MESSAGE);
  287. cardgame = new CardGame();
  288. computerCards = new CardGame();
  289.  
  290. cardgame.setUserName(username);
  291.  
  292. for (int j = 0; j < computercard.length; j++) {
  293. computercard[j] = computerCards.callcard();
  294. computerCards.dealcard();
  295. playercards[j] = cardgame.callcard();
  296. cardgame.dealcard();
  297. chooseCard[j].setIcon(playercards[j].getCardImage());
  298.  
  299. }
  300.  
  301.  
  302. }
  303.  
  304. if (e.getSource() == controlBtnArr[1]) {
  305. JTextArea textArea = new JTextArea(5, 50);
  306. textArea.setEditable(false);
  307. textArea.setText(cardgame.getResult());
  308. JOptionPane.showMessageDialog(this, textArea, "History", JOptionPane.INFORMATION_MESSAGE);
  309.  
  310. }
  311.  
  312. if (e.getSource() == controlBtnArr[2]) {
  313. JTextArea textArea = new JTextArea(5, 50);
  314. textArea.setEditable(false);
  315. textArea.setText(cardgame.getResult());
  316. JOptionPane.showMessageDialog(this, textArea, "Results of last game", JOptionPane.INFORMATION_MESSAGE);
  317.  
  318. JOptionPane.showMessageDialog(this, "Thank You for Playing");
  319. System.exit(0);
  320. }
  321. if (e.getSource() == about1) {
  322. JOptionPane.showMessageDialog(this, "Created by: \nYap Joon Woon\nLeroy Choo");
  323. }
  324. if (e.getSource() == Music1) {
  325. beethoven.stop();
  326. try {
  327.  
  328. bkmusic = Applet.newAudioClip(new File("bkmusic.mid").toURI().toURL());
  329. if (bkmusic != null) {
  330. bkmusic.loop();
  331.  
  332. }
  333. } catch (Exception f) {
  334. f.printStackTrace();
  335. }
  336. }
  337. if (e.getSource() == Music2) {
  338. bkmusic.stop();
  339. try {
  340.  
  341. beethoven = Applet.newAudioClip(new File("beethoven.wav").toURI().toURL());
  342. if (beethoven != null) {
  343. beethoven.loop();
  344. }
  345. } catch (Exception f) {
  346. f.printStackTrace();
  347. }
  348.  
  349. }
  350. }
  351.  
  352. //northPnl1//
  353. private void initTestPanel() {
  354. northPnl1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
  355.  
  356. choiceList.setFont(new Font("Verdana", Font.BOLD, 11));
  357. choiceList.setBackground(Color.yellow);
  358. choiceList.addItemListener(this);
  359. northPnl1.add(choiceList);
  360. northPnl1.setPreferredSize(new Dimension(700, 30));
  361. }
  362.  
  363. private void loadBkImg() {
  364. for (int i = 0; i < bkgdFilenameStr.length; i++) {
  365. bkImgArr[i] = new ImageIcon(bkgdFilenameStr[i]);
  366. }
  367. }
  368.  
  369. public void itemStateChanged(ItemEvent e) {
  370. if (e.getSource() == choiceList) {
  371. int selectedIndex = choiceList.getSelectedIndex();
  372. TileBackgroundPanel temp = (TileBackgroundPanel) getContentPane();
  373. temp.setTileIcon(bkImgArr[selectedIndex]);
  374. }
  375. }
  376. }
Add Comment
Please, Sign In to add comment