Advertisement
Guest User

naval

a guest
Nov 3rd, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package testmisc;
  6.  
  7. import java.awt.Image;
  8. import java.awt.Point;
  9. import java.awt.event.MouseEvent;
  10. import java.io.IOException;
  11. import java.util.ArrayList;
  12. import java.util.Random;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15. import javax.imageio.ImageIO;
  16. import javax.swing.Icon;
  17. import javax.swing.ImageIcon;
  18. import javax.swing.JButton;
  19. import javax.swing.event.MouseInputListener;
  20.  
  21. /**
  22. *
  23. * @author user
  24. */
  25. public class NavalFrame extends javax.swing.JFrame {
  26.  
  27. /**
  28. * Creates new form NavalFrame
  29. */
  30.  
  31. private int rows = 8;
  32. private int columns = 8;
  33. private int shipsNumber = 44;
  34. ArrayList <Point> ships ;
  35.  
  36. public NavalFrame() {
  37. MyJButton tab[][] = new MyJButton[rows][columns];
  38. ships = new ArrayList<Point>();
  39. Random ir = new Random();
  40. Random jr = new Random();
  41.  
  42. int rowLimit = rows -1;
  43. int columnLimit = columns -1;
  44. for (int i = 0; i < shipsNumber; ) {
  45. Point nextPoint = new Point( (int)(Math.round( ir.nextDouble()*rowLimit)),
  46. (int)(Math.round( jr.nextDouble()*columnLimit)));
  47. if(!ships.contains(nextPoint)){
  48. ships.add(nextPoint);
  49. System.out.println("="+ships.get(i));
  50. i++;
  51. }else{
  52. System.out.println("Crashed="+nextPoint);
  53. }
  54. }
  55.  
  56. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  57. getContentPane().setLayout(new java.awt.GridLayout(rows, columns));
  58.  
  59.  
  60. for (int i = 0; i < tab.length; i++) {
  61. for (int j = 0; j < tab[i].length; j++) {
  62. tab[i][j] = new MyJButton(new Point(i,j));
  63. this.add(tab[i][j]);
  64. tab[i][j].addMouseListener(new java.awt.event.MouseAdapter() {
  65. public void mouseClicked(java.awt.event.MouseEvent evt) {
  66. ShipClicked(evt);
  67. }
  68. private void ShipClicked(MouseEvent evt) {
  69. MyJButton current = (MyJButton)evt.getSource();
  70. if(ships.contains(current.currentPoistion)){
  71. System.out.println("Boom!! ");
  72. }else{
  73. System.out.println("FAIL!! ");
  74. }
  75.  
  76. }
  77. });
  78. }
  79. }
  80. try {
  81. Image img = ImageIO.read(getClass().getResource("/images.jpg"));
  82. for (int i = 0; i < shipsNumber; i++) {
  83. Point point = ships.get(i);
  84. tab[point.x][point.y].setIcon(new ImageIcon(img));
  85. }
  86. } catch (IOException ex) {
  87. Logger.getLogger(NavalFrame.class.getName()).log(Level.SEVERE, null, ex);
  88. }
  89. pack();
  90. this.setSize(800, 600);
  91. }
  92.  
  93.  
  94.  
  95. /**
  96. * This method is called from within the constructor to initialize the form.
  97. * WARNING: Do NOT modify this code. The content of this method is always
  98. * regenerated by the Form Editor.
  99. */
  100. @SuppressWarnings("unchecked")
  101. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  102. private void initComponents() {
  103.  
  104. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  105. getContentPane().setLayout(new java.awt.GridLayout());
  106.  
  107. pack();
  108. }// </editor-fold>
  109.  
  110. /**
  111. * @param args the command line arguments
  112. */
  113. public static void main(String args[]) {
  114. /* Set the Nimbus look and feel */
  115. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  116. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  117. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  118. */
  119. try {
  120. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  121. if ("Nimbus".equals(info.getName())) {
  122. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  123. break;
  124. }
  125. }
  126. } catch (ClassNotFoundException ex) {
  127. java.util.logging.Logger.getLogger(NavalFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  128. } catch (InstantiationException ex) {
  129. java.util.logging.Logger.getLogger(NavalFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  130. } catch (IllegalAccessException ex) {
  131. java.util.logging.Logger.getLogger(NavalFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  132. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  133. java.util.logging.Logger.getLogger(NavalFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  134. }
  135. //</editor-fold>
  136.  
  137. /* Create and display the form */
  138. java.awt.EventQueue.invokeLater(new Runnable() {
  139. public void run() {
  140. new NavalFrame().setVisible(true);
  141. }
  142. });
  143. }
  144. // Variables declaration - do not modify
  145. // End of variables declaration
  146. }
  147.  
  148. class MyJButton extends JButton{
  149.  
  150. Point currentPoistion = new Point(0, 0);
  151.  
  152. public MyJButton(Point currentPoistion){
  153. super();
  154. this.currentPoistion = currentPoistion;
  155. }
  156.  
  157. public MyJButton(Icon icon, Point currentPoistion){
  158. super(icon);
  159. this.currentPoistion = currentPoistion;
  160. }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement