import java.awt.*; import javax.swing.*; public class Zoga{ public static void main(String[] args){ Toolkit tk = Toolkit.getDefaultToolkit(); Dimension d = tk.getScreenSize(); JFrame okno = new JFrame(); okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Vsebina vsebinaOkna = new Vsebina(); vsebinaOkna.setBackground(new Color(255, 255, 255)); vsebinaOkna.setPreferredSize(new Dimension(d.width, d.height)); for (int i=0;i<32;i++){ vsebinaOkna.radij[i]=30; // iks[i]=0; // ips[i]=0; } okno.getContentPane().add(vsebinaOkna, BorderLayout.CENTER); okno.pack(); okno.setVisible(true); Animacija lolz = new Animacija(10,10,1); lolz.run(vsebinaOkna); Animacija rofl = new Animacija(1,1,2); rofl.run(vsebinaOkna); } } class Vsebina extends JPanel{ /** * */ private static final long serialVersionUID = -7226071297631662428L; public int[] radij=new int[32]; public int[] iks=new int[32]; public int[] ips=new int[32]; public int p; public void paintComponent(Graphics g){ super.paintComponent(g); g.setColor(Color.red); for(int j=0;j<=3;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; Animacija(int xhitrost, int yhitrost, int parameter){ this.xhitrost=xhitrost; this.yhitrost=yhitrost; this.parameter=parameter; } public void run(Vsebina panel) { Thread.currentThread().setPriority(Thread.MIN_PRIORITY); boolean naprej=true; boolean dol=true; panel.p=parameter; System.out.println(parameter); 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) { } Thread.currentThread().setPriority(Thread.MAX_PRIORITY); } } }