Advertisement
Guest User

Untitled

a guest
Feb 27th, 2015
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.16 KB | None | 0 0
  1. package battleship;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.GridLayout;
  6. import java.awt.event.MouseEvent;
  7. import java.awt.event.MouseListener;
  8.  
  9. import javax.swing.*;
  10.  
  11. public class GUI implements MouseListener {
  12. JFrame window = new JFrame("Battleship");
  13. JPanel mainPanel = new JPanel(new BorderLayout());
  14. JPanel eastPanel = new JPanel(new GridLayout());
  15. JPanel centerPanel = new JPanel(new GridLayout(1,2));
  16. JPanel center1 = new JPanel(new GridLayout(10,10,2,2));
  17. JPanel center2 = new JPanel(new GridLayout(10,10,2,2));
  18. JPanel centerwestPanel[][] = new JPanel[10][10];
  19. JPanel centereastPanel[][] = new JPanel[10][10];
  20. JPanel southPanel = new JPanel(new GridLayout(1,3));
  21. JLabel battleship = new JLabel("BattleShip");
  22. JPanel northPanel = new JPanel();
  23. JLabel User = new JLabel("User");
  24. JLabel Computer = new JLabel("Computer");
  25. JButton choseButton = new JButton("Place Ships");
  26. JLabel AircraftCarrier = new JLabel("Aircraft Carrier (5)");
  27. JLabel Battleship = new JLabel("Battleship (4)");
  28. JLabel Submarine = new JLabel("Submarine (3)");
  29. JLabel Cruiser = new JLabel("Cruiser (3)");
  30. JLabel PatrolBoat = new JLabel("Patrol Boat (2)");
  31. int length;
  32. JCheckBox AircraftCarrier1 = new JCheckBox();
  33. JCheckBox Battleship1 = new JCheckBox();
  34. JCheckBox Submarine1 = new JCheckBox();
  35. JCheckBox Cruiser1 = new JCheckBox();
  36. JCheckBox PatrolBoat1 = new JCheckBox();
  37. JCheckBox AircraftCarrier2 = new JCheckBox();
  38. JCheckBox Battleship2 = new JCheckBox();
  39. JCheckBox Submarine2 = new JCheckBox();
  40. JCheckBox Cruiser2 = new JCheckBox();
  41. JCheckBox PatrolBoat2 = new JCheckBox();
  42. int checkboxes;
  43. int checkboxe;
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. Color gridColor = new Color(95,127,245);
  52. public GUI() {
  53. choseButton.addMouseListener(this);
  54. centerPanel.add(center1);
  55. centerPanel.add(center2);
  56. mainPanel.add(BorderLayout.EAST, eastPanel);
  57. mainPanel.add(BorderLayout.CENTER, centerPanel);
  58. mainPanel.add(BorderLayout.NORTH, northPanel);
  59. mainPanel.add(BorderLayout.SOUTH, southPanel);
  60. southPanel.add(User);
  61. southPanel.add(choseButton);
  62. southPanel.add(Computer);
  63.  
  64.  
  65. northPanel.add(battleship);
  66. for (int i = 0; i < 10; i ++) {
  67. for (int j = 0; j < 10; j ++) {
  68. centereastPanel[i][j] = new JPanel();
  69. centerwestPanel[i][j] = new JPanel();
  70. centereastPanel[i][j].setBackground(Color.black);
  71. centerwestPanel[i][j].setBackground(gridColor);
  72. centereastPanel[i][j].addMouseListener(this);
  73. centerwestPanel[i][j].addMouseListener(this);
  74. //mapPanel.add(grid[i][j]);
  75.  
  76. center1.add(centerwestPanel[i][j]);
  77. center2.add(centereastPanel[i][j]);
  78. }
  79. }
  80. mainPanel.add(BorderLayout.SOUTH, southPanel);
  81.  
  82. AircraftCarrier.addMouseListener(this);
  83. window.add(mainPanel);
  84. window.setVisible(true);
  85. window.setExtendedState(JFrame.MAXIMIZED_BOTH);
  86. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  87. }
  88. @Override
  89. public void mouseClicked(MouseEvent e) {
  90. if (e.getSource() == choseButton) {
  91. JFrame Chooser = new JFrame("Boats");
  92. JPanel MainPanel = new JPanel(new GridLayout(6,3));
  93. JLabel Boats = new JLabel("Boats");
  94. JLabel Horizontal = new JLabel("Horizontal");
  95. JLabel Vertical = new JLabel("Vertical");
  96.  
  97. MainPanel.add(Boats);
  98. MainPanel.add(Horizontal);
  99. MainPanel.add(Vertical);
  100.  
  101. MainPanel.add(AircraftCarrier);
  102. MainPanel.add(AircraftCarrier1);
  103. MainPanel.add(AircraftCarrier2);
  104. MainPanel.add(Battleship);
  105. MainPanel.add(Battleship1);
  106. MainPanel.add(Battleship2);
  107. MainPanel.add(Submarine);
  108. MainPanel.add(Submarine1);
  109. MainPanel.add(Submarine2);
  110. MainPanel.add(Cruiser);
  111. MainPanel.add(Cruiser1);
  112. MainPanel.add(Cruiser2);
  113. MainPanel.add(PatrolBoat);
  114. MainPanel.add(PatrolBoat1);
  115. MainPanel.add(PatrolBoat2);
  116. Chooser.add(MainPanel);
  117. Chooser.setVisible(true);
  118. Chooser.setSize(500,500);
  119. }
  120.  
  121. //length = 5;
  122. for (int i = 0; i < 10; i ++) {
  123. for (int j = 0; j < 10; j ++) {
  124. if (e.getSource() ==centerwestPanel[i][j]) {
  125. if (carrier()) {
  126. if (j<6) {
  127. centerwestPanel[i][j].setBackground(Color.red);
  128. centerwestPanel[i][j+1].setBackground(Color.red);
  129. centerwestPanel[i][j+2].setBackground(Color.red);
  130. centerwestPanel[i][j+3].setBackground(Color.red);
  131. centerwestPanel[i][j+4].setBackground(Color.red);
  132. centerwestPanel[i][j].updateUI();
  133. AircraftCarrier1.setSelected(false);
  134. AircraftCarrier1.setEnabled(false);
  135. AircraftCarrier2.setSelected(false);
  136. AircraftCarrier2.setEnabled(false);
  137. checkboxes++;
  138. }
  139.  
  140. }
  141.  
  142. else if (battleship()) {
  143. if (j<7) {
  144. centerwestPanel[i][j].setBackground(Color.PINK);
  145. centerwestPanel[i][j+1].setBackground(Color.pink);
  146. centerwestPanel[i][j+2].setBackground(Color.pink);
  147. centerwestPanel[i][j+3].setBackground(Color.pink);
  148. Battleship1.setSelected(false);
  149. Battleship1.setEnabled(false);
  150. Battleship2.setSelected(false);
  151. Battleship2.setEnabled(false);
  152. checkboxes++;
  153. }
  154. }
  155. else if (submarine()) {
  156. if (j<8) {
  157. centerwestPanel[i][j].setBackground(Color.MAGENTA);
  158. centerwestPanel[i][j+1].setBackground(Color.magenta);
  159. centerwestPanel[i][j+2].setBackground(Color.magenta);
  160. Submarine1.setSelected(false);
  161. Submarine1.setEnabled(false);
  162. Submarine2.setSelected(false);
  163. Submarine2.setEnabled(false);
  164. checkboxes++;
  165. }
  166. }
  167. else if (cruiser()) {
  168. if (j<8) {
  169. centerwestPanel[i][j].setBackground(Color.lightGray);
  170. centerwestPanel[i][j+1].setBackground(Color.lightGray);
  171. centerwestPanel[i][j+2].setBackground(Color.lightGray);
  172. Cruiser1.setSelected(false);
  173. Cruiser1.setEnabled(false);
  174. Cruiser2.setSelected(false);
  175. Cruiser2.setEnabled(false);
  176. checkboxes++;
  177. }
  178. }
  179. else if (patrolboat()) {
  180. if (j<9) {
  181. centerwestPanel[i][j].setBackground(Color.WHITE);
  182. centerwestPanel[i][j+1].setBackground(Color.white);
  183. PatrolBoat1.setSelected(false);
  184. PatrolBoat1.setEnabled(false);
  185. PatrolBoat2.setSelected(false);
  186. PatrolBoat2.setEnabled(false);
  187. checkboxes++;
  188. }
  189. }
  190.  
  191. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  192.  
  193. if (carrier1()) {
  194. if (i<6) {
  195. centerwestPanel[i][j].setBackground(Color.red);
  196. centerwestPanel[i+1][j].setBackground(Color.red);
  197. centerwestPanel[i+2][j].setBackground(Color.red);
  198. centerwestPanel[i+3][j].setBackground(Color.red);
  199. centerwestPanel[i+4][j].setBackground(Color.red);
  200. centerwestPanel[i][j].updateUI();
  201. AircraftCarrier1.setSelected(false);
  202. AircraftCarrier1.setEnabled(false);
  203. AircraftCarrier2.setSelected(false);
  204. AircraftCarrier2.setEnabled(false);
  205. checkboxe++;
  206. }
  207.  
  208. }
  209.  
  210. else if (battleship1()) {
  211. if (i<7) {
  212. centerwestPanel[i][j].setBackground(Color.PINK);
  213. centerwestPanel[i+1][j].setBackground(Color.pink);
  214. centerwestPanel[i+2][j].setBackground(Color.pink);
  215. centerwestPanel[i+3][j].setBackground(Color.pink);
  216. Battleship1.setSelected(false);
  217. Battleship1.setEnabled(false);
  218. Battleship2.setSelected(false);
  219. Battleship2.setEnabled(false);
  220. checkboxe++;
  221. }
  222. }
  223. else if (submarine1()) {
  224. if (i<8) {
  225. centerwestPanel[i][j].setBackground(Color.MAGENTA);
  226. centerwestPanel[i+1][j].setBackground(Color.magenta);
  227. centerwestPanel[i+2][j].setBackground(Color.magenta);
  228. Submarine1.setSelected(false);
  229. Submarine1.setEnabled(false);
  230. Submarine2.setSelected(false);
  231. Submarine2.setEnabled(false);
  232. checkboxe++;
  233. }
  234. }
  235. else if (cruiser1()) {
  236. if (i<8) {
  237. centerwestPanel[i][j].setBackground(Color.lightGray);
  238. centerwestPanel[i+1][j].setBackground(Color.lightGray);
  239. centerwestPanel[i+2][j].setBackground(Color.lightGray);
  240. Cruiser1.setSelected(false);
  241. Cruiser1.setEnabled(false);
  242. Cruiser2.setSelected(false);
  243. Cruiser2.setEnabled(false);
  244. checkboxe++;
  245. }
  246. }
  247. else if (patrolboat1()) {
  248. if (i<9) {
  249. centerwestPanel[i][j].setBackground(Color.WHITE);
  250. centerwestPanel[i+1][j].setBackground(Color.white);
  251. PatrolBoat1.setSelected(false);
  252. PatrolBoat1.setEnabled(false);
  253. PatrolBoat2.setSelected(false);
  254. PatrolBoat2.setEnabled(false);
  255. checkboxe++;
  256. }
  257. }
  258.  
  259. else if ((!PatrolBoat1.isEnabled() || !PatrolBoat2.isEnabled())&&(!Cruiser1.isEnabled() || !Cruiser2.isEnabled())&&(!Submarine1.isEnabled() || !Submarine2.isEnabled())&&(!Battleship1.isEnabled() || !Battleship2.isEnabled())&&(!AircraftCarrier1.isEnabled() || !AircraftCarrier2.isEnabled())) {
  260. System.out.print("Darude Dankstorm");
  261. }
  262. else if (ship()) {
  263. JOptionPane.showMessageDialog(null, "Please Select a Boat");
  264. }
  265.  
  266.  
  267. else
  268. JOptionPane.showMessageDialog(null, "Please Select a Boat");
  269. }
  270. }
  271.  
  272.  
  273. //if (!carrier() && !battleship() && !submarine()&& !cruiser() && !patrolboat())
  274.  
  275.  
  276.  
  277.  
  278. }
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287. }
  288.  
  289. @Override
  290. public void mouseEntered(MouseEvent e) {
  291.  
  292. for (int i = 0; i < 10; i ++) {
  293. for (int j = 0; j < 10; j ++) {
  294. if (e.getSource() ==centerwestPanel[i][j]) {
  295. if (carrier()) {
  296. if (j<6) {
  297. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  298. centerwestPanel[i][j+1].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  299. centerwestPanel[i][j+2].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  300. centerwestPanel[i][j+3].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  301. centerwestPanel[i][j+4].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  302. }
  303. }
  304. if (battleship()) {
  305. if (j<7) {
  306. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  307. centerwestPanel[i][j+1].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  308. centerwestPanel[i][j+2].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  309. centerwestPanel[i][j+3].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  310. }
  311.  
  312. }
  313. if (submarine()) {
  314. if (j<8) {
  315. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  316. centerwestPanel[i][j+1].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  317. centerwestPanel[i][j+2].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  318. }
  319. }
  320. if (cruiser()) {
  321. if (j<8) {
  322. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  323. centerwestPanel[i][j+1].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  324. centerwestPanel[i][j+2].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  325. }
  326. }
  327. if (patrolboat()) {
  328. if (j<9) {
  329. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  330. centerwestPanel[i][j+1].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  331.  
  332. }
  333. }
  334. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  335. if (carrier1()) {
  336. if (i<6) {
  337. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  338. centerwestPanel[i+1][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  339. centerwestPanel[i+2][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  340. centerwestPanel[i+3][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  341. centerwestPanel[i+4][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  342. }
  343. }
  344. if (battleship1()) {
  345. if (i<7) {
  346. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  347. centerwestPanel[i+1][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  348. centerwestPanel[i+2][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  349. centerwestPanel[i+3][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  350. }
  351.  
  352. }
  353. if (submarine1()) {
  354. if (i<8) {
  355. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  356. centerwestPanel[i+1][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  357. centerwestPanel[i+2][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  358. }
  359. }
  360. if (cruiser1()) {
  361. if (i<8) {
  362. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  363. centerwestPanel[i+1][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  364. centerwestPanel[i+2][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  365. }
  366. }
  367. if (patrolboat1()) {
  368. if (i<9) {
  369. centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  370. centerwestPanel[i+1][j].setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
  371.  
  372. }
  373. }
  374. }
  375. }
  376. }
  377.  
  378.  
  379. for (int i = 0; i < 10; i++) {
  380. for (int j = 0; j < 10; j++) {
  381. if (e.getSource() == centereastPanel[i][j]) {
  382. centereastPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.white, 2));
  383. }
  384. }
  385. }
  386. // for (int i = 0; i < 10; i++) {
  387. // for (int j = 0; j < 10; j++) {
  388. // if (e.getSource() == centerwestPanel[i][j]) {
  389. // centerwestPanel[i][j].setBorder(BorderFactory.createLineBorder(Color.blue, 2));
  390. // }
  391. // }
  392. // }
  393. }
  394. @Override
  395. public void mouseExited(MouseEvent e) {
  396. for (int i = 0; i < 10; i ++) {
  397. for (int j = 0; j < 10; j ++) {
  398. if (e.getSource() ==centerwestPanel[i][j]) {
  399. if (carrier()) {
  400. if (j<6) {
  401. centerwestPanel[i][j].setBorder(null);
  402. centerwestPanel[i][j+1].setBorder(null);
  403. centerwestPanel[i][j+2].setBorder(null);
  404. centerwestPanel[i][j+3].setBorder(null);
  405. centerwestPanel[i][j+4].setBorder(null);
  406. }
  407. }
  408. if (battleship()) {
  409. if (j<7) {
  410. centerwestPanel[i][j].setBorder(null);
  411. centerwestPanel[i][j+1].setBorder(null);
  412. centerwestPanel[i][j+2].setBorder(null);
  413. centerwestPanel[i][j+3].setBorder(null);
  414. }
  415. }
  416. if (submarine() || cruiser()) {
  417. if (j<8) {
  418. centerwestPanel[i][j].setBorder(null);
  419. centerwestPanel[i][j+1].setBorder(null);
  420. centerwestPanel[i][j+2].setBorder(null);
  421. }
  422. }
  423. if (patrolboat()) {
  424. if (j<9) {
  425. centerwestPanel[i][j].setBorder(null);
  426. centerwestPanel[i][j+1].setBorder(null);
  427. }
  428. }
  429. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  430. if (carrier1()) {
  431. if (i<6) {
  432. centerwestPanel[i][j].setBorder(null);
  433. centerwestPanel[i+1][j].setBorder(null);
  434. centerwestPanel[i+2][j].setBorder(null);
  435. centerwestPanel[i+3][j].setBorder(null);
  436. centerwestPanel[i+4][j].setBorder(null);
  437. }
  438. }
  439. if (battleship1()) {
  440. if (i<7) {
  441. centerwestPanel[i][j].setBorder(null);
  442. centerwestPanel[i+1][j].setBorder(null);
  443. centerwestPanel[i+2][j].setBorder(null);
  444. centerwestPanel[i+3][j].setBorder(null);
  445. }
  446. }
  447. if (submarine1() || cruiser1()) {
  448. if (i<8) {
  449. centerwestPanel[i][j].setBorder(null);
  450. centerwestPanel[i+1][j].setBorder(null);
  451. centerwestPanel[i+2][j].setBorder(null);
  452. }
  453. }
  454. if (patrolboat1()) {
  455. if (i<9) {
  456. centerwestPanel[i][j].setBorder(null);
  457. centerwestPanel[i+1][j].setBorder(null);
  458. }
  459. }
  460. }
  461. }
  462. }
  463. for (int i = 0; i < 10; i++) {
  464. for (int j = 0; j < 10; j++) {
  465. if (e.getSource() == centereastPanel[i][j]) {
  466. centereastPanel[i][j].setBorder(null);
  467. }
  468. }
  469. }
  470. for (int i = 0; i < 10; i++) {
  471. for (int j = 0; j < 10; j++) {
  472. if (e.getSource() == centerwestPanel[i][j]) {
  473. centerwestPanel[i][j].setBorder(null);
  474. }
  475. }
  476. }
  477.  
  478. }
  479. @Override
  480. public void mousePressed(MouseEvent e) {
  481.  
  482.  
  483. }
  484. @Override
  485. public void mouseReleased(MouseEvent e) {
  486.  
  487.  
  488. }
  489. //(!PatrolBoat1.isEnabled() || !PatrolBoat2.isEnabled())&&(!Cruiser1.isEnabled() || !Cruiser2.isEnabled())&&(!Submarine1.isEnabled() || !Submarine2.isEnabled())&&(!Battleship1.isEnabled() || !Battleship2.isEnabled())&&(!AircraftCarrier1.isEnabled() || !AircraftCarrier2.isEnabled())
  490. public boolean ship() {
  491. if (checkboxes >=1 && checkboxe >=1){
  492. return true;
  493. }
  494. return false;
  495. }
  496. public boolean carrier() {
  497. if (AircraftCarrier1.isSelected()) {
  498. return true;
  499. }
  500. return false;
  501. }
  502. public boolean battleship() {
  503. if (Battleship1.isSelected()) {
  504. return true;
  505. }
  506. return false;
  507. }
  508. public boolean submarine() {
  509. if (Submarine1.isSelected()) {
  510. return true;
  511. }
  512. return false;
  513. }
  514. public boolean cruiser() {
  515. if (Cruiser1.isSelected()) {
  516. return true;
  517. }
  518. return false;
  519. }
  520. public boolean patrolboat() {
  521. if (PatrolBoat1.isSelected()) {
  522. return true;
  523. }
  524. return false;
  525. }
  526. // JButton choseButton = new JButton("Place Ships");
  527. // JLabel AircraftCarrier = new JLabel("Aircraft Carrier (5)");
  528. // JLabel Battleship = new JLabel("Battleship (4)");
  529. // JLabel Submarine = new JLabel("Submarine (3)");
  530. // JLabel Cruiser = new JLabel("Cruiser (3)");
  531. // JLabel PatrolBoat = new JLabel("Patrol Boat (2)");
  532. // int length;
  533. public boolean carrier1() {
  534. if (AircraftCarrier2.isSelected()) {
  535. return true;
  536. }
  537. return false;
  538. }
  539. public boolean battleship1() {
  540. if (Battleship2.isSelected()) {
  541. return true;
  542. }
  543. return false;
  544. }
  545. public boolean submarine1() {
  546. if (Submarine2.isSelected()) {
  547. return true;
  548. }
  549. return false;
  550. }
  551. public boolean cruiser1() {
  552. if (Cruiser2.isSelected()) {
  553. return true;
  554. }
  555. return false;
  556. }
  557. public boolean patrolboat1() {
  558. if (PatrolBoat2.isSelected()) {
  559. return true;
  560. }
  561. return false;
  562. }
  563. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement