ArthurDn

Untitled

Sep 13th, 2012
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.79 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5. import java.awt.event.*;
  6.  
  7. import javax.swing.*;
  8.  
  9. public class MainWindow extends JFrame implements KeyListener, ActionListener {
  10.  
  11.     /**
  12.      *
  13.      */
  14.     private static final long serialVersionUID = 1L;
  15.     static int i=4;
  16.     static int j=1;
  17.     Cell cells[][] = new Cell[10][20];
  18.     private Timer timer;;
  19.     boolean firstLoad = true;
  20.     Graphics gr;
  21.     JTextArea displayArea;
  22.     JTextField typingArea;
  23.     static final String newline = System.getProperty("line.separator");
  24.    
  25.     @Override
  26.     public void keyPressed(KeyEvent e) {
  27. if(e.getKeyCode() == KeyEvent.VK_F3)
  28. {
  29.   setVisible(false);
  30.   System.exit(0);
  31. }
  32.  
  33.  
  34. int keyCod = e.getKeyCode();
  35. if (keyCod == KeyEvent.VK_R)
  36.     {try {
  37.         redrawField();
  38.     } catch (InterruptedException e1) {
  39.         // TODO Auto-generated catch block
  40.         e1.printStackTrace();
  41.     }
  42.  
  43. repaint();}}
  44.    
  45.          
  46.    
  47.     public static void main(String[] args) {
  48.         Thread t=Thread.currentThread();
  49.        
  50.         try {
  51.             UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
  52.         } catch (UnsupportedLookAndFeelException ex) {
  53.             ex.printStackTrace();
  54.         } catch (IllegalAccessException ex) {
  55.             ex.printStackTrace();
  56.         } catch (InstantiationException ex) {
  57.             ex.printStackTrace();
  58.         } catch (ClassNotFoundException ex) {
  59.             ex.printStackTrace();
  60.         }
  61.         UIManager.put("swing.boldMetal", Boolean.FALSE);
  62.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  63.             public void run() {
  64.                 createAndShowGUI();
  65.             }
  66.         });
  67.     }
  68.  
  69.     public void paint(Graphics gr) {
  70.  
  71.         gr.drawLine(0, 0, 0, 600);
  72.         gr.drawLine(0, 0, 300, 0);
  73.         gr.drawLine(300, 600, 300, 0);
  74.         gr.drawLine(0, 600, 300, 600);
  75.         gr.setColor(Color.white);
  76.         gr.fillRect(1, 1, 298, 598);
  77.         this.gr = gr;
  78.         if (firstLoad) {
  79.             firstLoad = false;
  80.         try {
  81.             fillField();
  82.             fillField();
  83.         } catch (InterruptedException e) {
  84.             // TODO Auto-generated catch block
  85.             e.printStackTrace();
  86.         }
  87.        
  88.         }
  89.  
  90.     }
  91.  
  92.     public void redrawField() throws InterruptedException {
  93.         for (i = 4; i < 5; i++) {
  94.             for (j = 0; j < 18; j++) {
  95.  
  96.                         cells[i - 1][j + 1] = new BlackZyu(gr, 0, (i + 1) * 30,
  97.                                 j * 30, "Black");
  98.                         cells[i][j + 2] = new BlackZyu(gr, 0, (i + 1) * 30,
  99.                                 j * 30, "Black");
  100.                    
  101.  
  102.                 if (cells[i - 1][j + 1].getName().equals("Lock")
  103.                         || cells[i][j + 2].getName().equals("Lock"))
  104.                     break;
  105.                 cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, j * 30,
  106.                         "Black");
  107.                 cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, (j + 1) * 30,
  108.                         "Black");
  109.                 cells[i][j] = new BlackZyu(gr, 30, i * 30, (j + 1) * 30,
  110.                         "Black");
  111.                 cells[i][j] = new BlackZyu(gr, 30, i * 30, (j + 2) * 30,
  112.                         "Black");
  113.                 Thread.currentThread();
  114.                 Thread.sleep(150);
  115.                 if (j != 17) {
  116.                     cells[i][j] = new WhiteZyu(gr, 30, (i - 1) * 30, j * 30,
  117.                             "White");
  118.                     cells[i][j] = new WhiteZyu(gr, 30, (i - 1) * 30,
  119.                             (j + 1) * 30, "White");
  120.                     cells[i][j] = new WhiteZyu(gr, 30, i * 30, (j + 1) * 30,
  121.                             "White");
  122.                     cells[i][j] = new WhiteZyu(gr, 30, i * 30, (j + 2) * 30,
  123.                             "White");
  124.  
  125.                 }
  126.             }
  127.         }
  128.         if (j == 17) {
  129.             cells[i][j] = new BlackZyu(gr, 0, i * 30, (j + 2) * 30, "Lock");
  130.             cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, (j + 1) * 30,
  131.                     "Lock");
  132.         }
  133.  
  134.  
  135.     }
  136.  
  137. //  private int getI() {
  138. //      return i;
  139. //
  140. //  }
  141.    
  142.  
  143.     public void fillField() throws InterruptedException {
  144.  
  145.         timer=new Timer(150,new ActionListener()
  146.         {
  147.               public void actionPerformed(ActionEvent e)
  148.               {
  149.  
  150.  if (j<17) {
  151.     j++;
  152.     System.out.print(""+cells[i][j].getName());
  153.     cells[i - 1][j + 1] = new BlackZyu(gr, 0, (i + 1) * 30, j * 30, "Black");
  154.     cells[i][j + 2] = new BlackZyu(gr, 0, (i + 1) * 30, j * 30, "Black");
  155.     if (cells[i - 1][j + 1].getName().equals("Lock")
  156.             || cells[i][j + 2].getName().equals("Lock"))
  157.         timer.stop();
  158.     cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, j * 30, "Black");
  159.     cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, (j + 1) * 30, "Black");
  160.     cells[i][j] = new BlackZyu(gr, 30, i * 30, (j + 1) * 30, "Black");
  161.     cells[i][j] = new BlackZyu(gr, 30, i * 30, (j + 2) * 30, "Black");
  162.     if (j != 17) {
  163.         cells[i][j - 1] = new WhiteZyu(gr, 30, (i - 1) * 30, j * 30, "White");
  164.         cells[i][j - 1] = new WhiteZyu(gr, 30, (i - 1) * 30, (j + 1) * 30,
  165.                 "White");
  166.         cells[i][j - 1] = new WhiteZyu(gr, 30, i * 30, (j + 1) * 30, "White");
  167.         cells[i][j - 1] = new WhiteZyu(gr, 30, i * 30, (j + 2) * 30, "White");
  168.  
  169.     }
  170.     if (j == 17) {
  171.         cells[i][j] = new BlackZyu(gr, 0, i * 30, (j + 2) * 30, "Lock");
  172.         cells[i][j] = new BlackZyu(gr, 30, (i - 1) * 30, (j + 1) * 30, "Lock");
  173.     }
  174. }
  175.  
  176.               }
  177.           } );
  178. timer.start();
  179.        
  180.  
  181.     }
  182.  
  183.     private static void createAndShowGUI() {
  184.  
  185.         MainWindow frame = new MainWindow("KeyEventDemo");
  186.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  187.  
  188.         frame.addComponentsToPane();
  189.         frame.pack();
  190.         frame.setVisible(true);
  191.     }
  192.  
  193.     private void addComponentsToPane() {
  194.  
  195.         JButton button = new JButton("Новая игра");
  196.         button.addActionListener(this);
  197.  
  198.         typingArea = new JTextField(20);
  199.         typingArea.addKeyListener(this);
  200.  
  201.         displayArea = new JTextArea();
  202.         displayArea.setEditable(false);
  203.         JScrollPane scrollPane = new JScrollPane(displayArea);
  204.         scrollPane.setPreferredSize(new Dimension(300, 600));
  205.  
  206.         getContentPane().add(typingArea, BorderLayout.PAGE_START);
  207.         getContentPane().add(scrollPane, BorderLayout.CENTER);
  208.         getContentPane().add(button, BorderLayout.PAGE_END);
  209.     }
  210.  
  211.     public MainWindow(String name) {
  212.         super(name);
  213.     }
  214.  
  215.    
  216.  
  217.     @Override
  218.     public void keyReleased(KeyEvent arg0) {
  219.     }
  220.  
  221.     @Override
  222.     public void keyTyped(KeyEvent arg0) {
  223.     }
  224.  
  225.     @Override
  226.     public void actionPerformed(ActionEvent e) {
  227.  
  228.         displayArea.setText("");
  229.         typingArea.setText("");
  230.         typingArea.requestFocusInWindow();
  231.     }
  232.    
  233.    
  234.    
  235.    
  236. }
Advertisement
Add Comment
Please, Sign In to add comment