Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. package lab8;
  2. import javax.swing.*;
  3. import javax.swing.Timer;
  4. import javax.swing.event.*;
  5. import java.awt.*;
  6. import java.awt.event.*;
  7. import java.util.*;
  8.  
  9.  
  10.  
  11. class Okno extends JFrame{
  12. private Container tlo;
  13. private MojPanel mp = new MojPanel();
  14. public Okno(String tyt, int x0, int y0, int szer, int wys){
  15. super(tyt);
  16. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17. setBounds(x0,y0,szer,wys);
  18. tlo=getContentPane();
  19. budujUI();
  20. setVisible(true);
  21. }
  22. private void budujUI(){
  23. tlo.setLayout(new BorderLayout());
  24. JPanel gorny = new JPanel();
  25. tlo.add(gorny, BorderLayout.NORTH);
  26. gorny.setBackground(Color.YELLOW);
  27. tlo.add(mp, BorderLayout.CENTER);
  28. JButton koniec = new JButton("Koniec");
  29. gorny.add(koniec);
  30. koniec.addActionListener(new ActionListener() {
  31. @Override
  32. public void actionPerformed(ActionEvent e)
  33. {
  34. dispose();
  35. }
  36. });
  37.  
  38. JButton odczyt = new JButton("Odczytaj");
  39. gorny.add(odczyt);
  40. odczyt.addActionListener(new ActionListener() {
  41. @Override
  42. public void actionPerformed(ActionEvent e)
  43. {
  44.  
  45. Random r = new Random();
  46. Kulka k = new Kulka(250+r.nextInt(100),250+r.nextInt(100),10,new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)),r.nextInt(21)-10,r.nextInt(21)-10);
  47. figury.add(k);
  48. }
  49. });
  50.  
  51. }
  52. }
  53. class MojPanel extends JPanel{
  54. Timer t;
  55.  
  56. private ArrayList <Figura> figury = new ArrayList<>();
  57. public MojPanel(){
  58. super();
  59.  
  60. Random r = new Random();
  61. for (int i = 0; i<=0;i++){
  62. Kulka k = new Kulka(250+r.nextInt(100),250+r.nextInt(100),10,new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)),r.nextInt(21)-10,r.nextInt(21)-10);
  63. figury.add(k);
  64. Kwadrat t = new Kwadrat(250+r.nextInt(100),250+r.nextInt(100),20,new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)),r.nextInt(21)-10,r.nextInt(21)-10);
  65. figury.add(t);
  66. Trojkat v = new Trojkat(250+r.nextInt(100),250+r.nextInt(100),20,new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)),r.nextInt(21)-10,r.nextInt(21)-10);
  67. figury.add(v);
  68. poly h = new poly(250+r.nextInt(100),250+r.nextInt(100),20,new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256)),r.nextInt(21)-10,r.nextInt(21)-10);
  69. figury.add(h);
  70. }
  71.  
  72.  
  73.  
  74. setBackground(Color.WHITE);
  75. t = new Timer(20, new ActionListener() {
  76. @Override
  77. public void actionPerformed(ActionEvent e){
  78. for(Figura f: figury){
  79. f.rusz(getWidth(),getHeight());
  80. }
  81. repaint();
  82. }
  83. });
  84. t.start();
  85. }
  86. @Override
  87. public void paintComponent(Graphics g){
  88. super.paintComponent(g);
  89. for(Figura f: figury){
  90. f.rysuj(g);
  91. }
  92. }
  93. }
  94.  
  95. abstract class Figura{
  96. protected int x,y,r,vx,vy;
  97. protected Color k;
  98. public Figura(int xx,int yy,int rr,Color kk, int vxvx,int vyvy){
  99. x = xx;
  100. y = yy;
  101. r = rr;
  102. k = kk;
  103. vx = vxvx;
  104. vy = vyvy;
  105. }
  106. abstract public void rysuj(Graphics g);
  107. public void rusz(int szer, int wys){
  108. if(x>=szer-r || x<=r){
  109. vx=-vx;
  110. }
  111. if(y>=wys-r || y<=r){
  112. vy=-vy;
  113. }
  114. x+=vx;
  115. y+=vy;
  116. }
  117. }
  118.  
  119.  
  120.  
  121.  
  122. class Kulka extends Figura{
  123.  
  124.  
  125. public Kulka(int xx,int yy,int rr,Color kk, int vxvx,int vyvy){
  126. super(xx,yy,rr,kk,vxvx,vyvy);
  127. }
  128. @Override
  129. public void rysuj(Graphics g){
  130. g.setColor(k);
  131. g.fillOval(x-r,y-r,2*r,2*r);
  132. }
  133. }
  134.  
  135. public class Lab8 {
  136. public static void main(String[] args) {
  137. Okno o = new Okno("Kulki",100,100,1700,1100);
  138. private ArrayList <Figura> figury = new ArrayList<>();
  139. }
  140.  
  141. }
  142.  
  143. class Kwadrat extends Figura{
  144.  
  145.  
  146. public Kwadrat(int xx,int yy,int rr,Color kk, int vxvx,int vyvy){
  147. super(xx,yy,rr,kk,vxvx,vyvy);
  148. }
  149. @Override
  150. public void rysuj(Graphics g){
  151. g.setColor(k);
  152. g.fillRect(x-r,y-r,2*r,2*r);
  153. }
  154. }
  155.  
  156. class Trojkat extends Figura{
  157.  
  158.  
  159. public Trojkat(int xx,int yy,int rr,Color kk, int vxvx,int vyvy){
  160. super(xx,yy,rr,kk,vxvx,vyvy);
  161. }
  162. @Override
  163. public void rysuj(Graphics g){
  164. g.setColor(k);
  165. int[] a={x,(x+r),x,(x-r)};
  166. int[] b={(y-r),y,(y+r),y};
  167. g.fillPolygon(a,b,3);
  168. }
  169. }
  170.  
  171. class poly extends Figura{
  172.  
  173.  
  174. public poly(int xx,int yy,int rr,Color kk, int vxvx,int vyvy){
  175. super(xx,yy,rr,kk,vxvx,vyvy);
  176. }
  177. @Override
  178. public void rysuj(Graphics g){
  179. g.setColor(k);
  180. int[] a={x,(x+r),x,(x-r)};
  181. int[] b={(y-r),y,(y+r),y};
  182. g.fillPolygon(a,b,4);
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement