rendered paste bodyimport java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class Zoga {
public static void main(String[] args) {
JFrame okno = new Okno();
okno.setVisible(true);
}
}
class Okno extends JFrame implements KeyListener {
Vsebina vsebina=new Vsebina();
private int znj=0;
private Random rnd = new Random();
Animacija[] zogice=new Animacija[32];
public Okno(){
setTitle("Zogice");
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
setSize(d.width,d.height);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(new Color(255, 255, 255));
setPreferredSize(new Dimension(d.width/2, d.height/2));
this.add(vsebina);
for (int i=0;i<32;i++){
vsebina.radij[i]=30;
}
System.out.println("asd");
for(int i=0;i<5;i++){
zogice[i]=new Animacija(rnd.nextInt(20),rnd.nextInt(20),znj,vsebina);
zogice[i].start();
znj++;
}
vsebina.addKeyListener(this);
}
public void keyPressed(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if (e.getKeyChar()==KeyEvent.VK_SPACE){
System.out.println("asdf");
zogice[znj]=new Animacija(rnd.nextInt(20),rnd.nextInt(20),znj,vsebina);
zogice[znj].start();
znj++;
}
}
}
class Vsebina extends JPanel{
private static final long serialVersionUID = 1L;
public int[] radij=new int[32];
public int[] iks=new int[32];
public int[] ips=new int[32];
public int p=0;
public Color[] c=new Color[32];
public void paintComponent(Graphics g){
super.paintComponent(g);
for(int j=0;j<=p;j++){
g.setColor(c[j]);
g.fillOval(iks[j]-radij[j],ips[j]-radij[j],2*radij[j],2*radij[j]);
}
}
}
class Animacija extends Thread {
int xhitrost;
int yhitrost;
int parameter;
Vsebina panel;
Animacija(int xhitrost, int yhitrost,int parameter,Vsebina panel){
this.xhitrost=xhitrost;
this.yhitrost=yhitrost;
this.parameter=parameter;
this.panel=panel;
}
public void run() {
boolean naprej=true;
boolean dol=true;
panel.p=parameter;
System.out.println(parameter);
Random rnd=new Random();
panel.c[parameter]=new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256));
while(true) {
if (panel.iks[parameter]-panel.radij[parameter]<=0)
naprej=true;
if (panel.iks[parameter]+panel.radij[parameter]>=panel.getWidth())
naprej=false;
if (naprej)
panel.iks[parameter]+=xhitrost;
else
panel.iks[parameter]-=xhitrost;
if (panel.ips[parameter]-panel.radij[parameter]<=0)
dol=true;
if (panel.ips[parameter]+panel.radij[parameter]>=panel.getHeight())
dol=false;
if(dol)
panel.ips[parameter]+=yhitrost;
else
panel.ips[parameter]-=yhitrost;
panel.repaint();
try {
Thread.sleep(20);
}
catch (InterruptedException ex) {
}
}
}
}