ljukk

mucha

May 29th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. import java.awt.Graphics;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.MouseEvent;
  5. import java.awt.event.MouseListener;
  6. import java.util.Random;
  7. import javax.swing.JComponent;
  8. import javax.swing.JFrame;
  9. import javax.swing.Timer;
  10.  
  11.  
  12. public class Mucha extends JComponent
  13.              implements ActionListener, MouseListener{
  14.     protected JFrame kdeSaNachadzam; // ma v sebe JFrame
  15.     protected Timer t;              // timer
  16.     protected static int pocitadlo; // spolocny premenna static
  17.  
  18.     public Mucha(int x, int y, JFrame kdeSaNachadzam) {
  19.         setBounds(x, y, 30, 30);
  20.         this.kdeSaNachadzam = kdeSaNachadzam;
  21.        
  22.         Random generator = new Random(); //generator pre timer
  23.        
  24.         t = new Timer(generator.nextInt(201) + 50, this); // kazda ma vlastny timer
  25.         t.start();
  26.         addMouseListener(this); // ak kliknem
  27.         pocitadlo = 0;
  28.     }
  29.  
  30.     @Override
  31.     protected void paintComponent(Graphics g) {
  32.         super.paintComponent(g);
  33.         g.fillOval(0,0,29,29);
  34.     }
  35.  
  36.     @Override
  37.     public void actionPerformed(ActionEvent ae) {
  38.         Random generator = new Random();
  39.         int x = generator.nextInt(21) - 10; //pohyb muchy po x
  40.         int y = generator.nextInt(21) - 10; // pohyb muchy po y
  41.         setLocation(getX() + x, getY() + y); // nastav x o,nastav y o
  42.         if (getX() < 0) setLocation(0, getY()); // nepustim ju z formulara po x
  43.         if (getY() < 0) setLocation(getX(), 0); // nepustim ju z formulara po y
  44.         if (getX()+50 > kdeSaNachadzam.getWidth())  //vacsia ako sirka formulara
  45.               setLocation(kdeSaNachadzam.getWidth()-50, getY()); // nastavim polohu na formlari
  46.         if (getY()+50 > kdeSaNachadzam.getHeight())  // vacsia ako vyska formulara
  47.             setLocation(getX(), kdeSaNachadzam.getHeight()-50); // nastavim polohu na formlari
  48.        
  49.     }
  50.  
  51.     @Override
  52.     public void mouseClicked(MouseEvent me) {}
  53.  
  54.     @Override
  55.     public void mousePressed(MouseEvent me) {
  56.         t.stop();
  57.         kdeSaNachadzam.remove(this); //odstraneni z formulara
  58.         kdeSaNachadzam.repaint(); // prekleslenie
  59.         pocitadlo++;
  60.         kdeSaNachadzam.setTitle("Pocet chytenych: " + pocitadlo);
  61.     }
  62.  
  63.     @Override
  64.     public void mouseReleased(MouseEvent me) {}
  65.  
  66.     @Override
  67.     public void mouseEntered(MouseEvent me) {}
  68.  
  69.     @Override
  70.     public void mouseExited(MouseEvent me) {}
  71.    
  72.    
  73.    
  74.    
  75.    
  76. }
Add Comment
Please, Sign In to add comment