All pastes #479200 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-09 16:29 UTC
rendered paste body
import 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) {
			}
		}
	}
}