Advertisement
fak123

PWSI Z3 labolatoria2

May 29th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.81 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package zad_I5_zaj4;
  6.  
  7. import java.awt.Graphics;
  8. import java.util.Random;
  9. import java.util.logging.Level;
  10. import java.util.logging.Logger;
  11. import javax.swing.*;
  12.  
  13. /**
  14.  *
  15.  * @author kprzyby
  16.  */
  17.  
  18. abstract class LatajacyObiekt extends Thread {
  19.     PanelWygaszacza gdzieMamLatac;    
  20.     int x,y; //wspolrzedne
  21.     int maxX, maxY, minX, minY;
  22.    
  23.     LatajacyObiekt(PanelWygaszacza g)
  24.     {        
  25.         this.gdzieMamLatac = g;
  26.         maxX = gdzieMamLatac.getBounds().width;
  27.         maxY = gdzieMamLatac.getBounds().height;
  28.         minX = 20;
  29.         minY = 20;
  30.     }
  31.    
  32.     public void run()
  33.     {
  34.         Random losowanie = new Random();
  35.        
  36.         while(true)
  37.         {
  38.             x = minX + losowanie.nextInt(maxX+1-minX);
  39.             y = minY + losowanie.nextInt(maxY+1-minY);
  40.             gdzieMamLatac.repaint();
  41.             try {
  42.                 sleep(1000);
  43.             } catch (Exception ex) {}
  44.         }
  45.     }
  46.    
  47.     abstract void rysuj(Graphics g);
  48. }
  49.  
  50. class LatajacyTekst extends LatajacyObiekt
  51. {
  52.     String tekst;
  53.    
  54.     LatajacyTekst(String tekst, PanelWygaszacza g)
  55.     {
  56.         super(g);
  57.         this.tekst = tekst;      
  58.     }  
  59.    
  60.     public void rysuj(Graphics g){
  61.         g.drawString(tekst, x, y);
  62.     }
  63. }
  64.  
  65. class LatajaceKolo extends LatajacyObiekt
  66. {
  67.     int r;
  68.    
  69.     LatajaceKolo(int r, PanelWygaszacza g)
  70.     {
  71.         super(g);
  72.         this.r = r;      
  73.     }  
  74.    
  75.     public void rysuj(Graphics g){
  76.         g.drawOval(x, y, r, r);
  77.     }
  78. }
  79.  
  80. class PanelWygaszacza extends JPanel
  81. {
  82.     Wygaszacz okno;
  83.     PanelWygaszacza(Wygaszacz wygaszacz)
  84.     {
  85.         this.okno = wygaszacz;
  86.     }
  87.     protected void paintComponent(Graphics g)
  88.     {
  89.         super.paintComponent(g);
  90.         for(LatajacyObiekt t : okno.tablicaTekstow)
  91.         {
  92.             //g.drawString(t.tekst, t.x, t.y);
  93.             t.rysuj(g);
  94.         }
  95.     }
  96.    
  97. }
  98. public class Wygaszacz extends JFrame
  99. {
  100.     PanelWygaszacza panel;
  101.     LatajacyObiekt tablicaTekstow[];
  102.     private void init()
  103.     {
  104.         panel = new PanelWygaszacza(this);
  105.         add(panel);
  106.         setSize(500, 300);
  107.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  108.         setVisible(true);
  109.         setTitle("Moj Wygaszacz");
  110.         tablicaTekstow = new LatajacyObiekt[]
  111.         {
  112.             new LatajacyTekst("Cokolwiek", panel),
  113.             new LatajaceKolo(30, panel),
  114.             new LatajacyTekst("Fruwam", panel)
  115.         };
  116.         for(LatajacyObiekt tekst : tablicaTekstow)
  117.         {
  118.             tekst.start();
  119.         }
  120.     }
  121.     public static void main(String args[])
  122.     {
  123.         Wygaszacz wygaszacz = new Wygaszacz();
  124.         wygaszacz.init();
  125.     }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement