swing - Many copies of "Applet started" string in java applet -
i created applet using threads. when run , change size of window see few copies of "applet started" string. wonder why , how fix that?
when strin starts? here code:
import java.awt.color; import java.awt.graphics; import java.awt.graphics2d; import java.util.random; import javax.swing.japplet; public class app extends javax.swing.japplet { /** * */ random generator = new random(); public int n = 15; public int m = 15; public int k = 200; public int size = 25; public kwadrat[][] watki; public double p = 0.98; public boolean sth = true ; /** * function initializes threads given data * @exception numberformatexception when there no data html code * */ public void init(){ try{n = integer.parseint(getparameter("n"));} catch( numberformatexception e){ system.out.println("nieprawidłowy parametr: n"); } catch( nullpointerexception e){} try{m = integer.parseint(getparameter("m"));} catch( numberformatexception e){ system.out.println("nieprawidłowy parametr: m"); } catch( nullpointerexception e){} try{k = integer.parseint(getparameter("k"));} catch( numberformatexception e){ system.out.println("nieprawidłowy parametr: k"); } catch( nullpointerexception e){} try{ p = double.parsedouble(getparameter("p"));} catch( numberformatexception e){ system.out.println("nieprawidłowy parametr: k"); } catch( nullpointerexception e){} watki = new kwadrat[n][m]; (int = 0 ; < n ; ++i) (int j = 0 ; j < m ; ++j){ watki[i][j] = new kwadrat(10+i*size, 10+j*size, i, j, size, (int)(k*(generator.nextdouble()+0.5)), new java.awt.color(generator.nextint(255), generator.nextint(255), generator.nextint(255) ) ); } } /** * start method start threads */ public void start(){ (int = 0 ; < n ; ++i) (int j = 0 ; j < m ; ++j){ thread t; t = new thread( new movingrunnable(watki[i][j])); t.start(); } } /** * paint method responsible drawing rectangles(threads) */ public void paint(graphics g){ //super.paint(g); //g.fillrect(0, 0, 1000, 1000); repaint(); (int = 0 ; < n ; ++i) (int j = 0 ; j < m ; ++j){ g.setcolor(watki[i][j].kwadratcolor); g.fillrect(watki[i][j].x, watki[i][j].y, size, size); } } /** * * @author seba * class movingrunnable implements runnable includes rectangles threads * @param b object of kwadrat class * @param run() main method of class. changes color of rectangles * @exception interruptedexception when wrong sleeping thread */ private class movingrunnable implements runnable{ private final kwadrat b; private movingrunnable(kwadrat b){this.b=b;} public void run(){ for(;;){ if(generator.nextdouble()<p){ int c1 = 0,c2 = 0,c3 = 0; if(b.nrx>0){ c1 += watki[b.nrx-1][b.nry].kwadratcolor.getred(); c2 += watki[b.nrx-1][b.nry].kwadratcolor.getgreen(); c3 += watki[b.nrx-1][b.nry].kwadratcolor.getblue(); } if(b.nrx<n-1) { c1 += watki[b.nrx+1][b.nry].kwadratcolor.getred(); c2 += watki[b.nrx+1][b.nry].kwadratcolor.getgreen(); c3 += watki[b.nrx+1][b.nry].kwadratcolor.getblue(); } if(b.nry>0) { c1 += watki[b.nrx][b.nry-1].kwadratcolor.getred(); c2 += watki[b.nrx][b.nry-1].kwadratcolor.getgreen(); c3 += watki[b.nrx][b.nry-1].kwadratcolor.getblue(); } if(b.nry<m-1) { c1 += watki[b.nrx][b.nry+1].kwadratcolor.getred(); c2 += watki[b.nrx][b.nry+1].kwadratcolor.getgreen(); c3 += watki[b.nrx][b.nry+1].kwadratcolor.getblue(); } b.changecolor(new java.awt.color(c1/4,c2/4,c3/4)); } else //b.changecolor(color.gray); b.changecolor(generator); repaint(); try { thread.sleep(b.wait); } catch (interruptedexception e) { // todo auto-generated catch block e.printstacktrace(); } } } } } /** * * @author seba * @param x position in x * @param y position in y * @param nrx x position in watki[][] array * @param nry y position in watki[][] array * @param wait time of sleeping thread * @param size size of side * @param kwadratcolor - color of ractangle * @param kwadrat(int,int,int,int,int,int,color) main constructor * @param changecolor(random) changing color generating random * @param changecolor(color) changing color given color */ class kwadrat{ public int x; public int y; public int nrx; public int nry; public int wait; public int size; color kwadratcolor; public kwadrat( int x, int y, int nrx, int nry, int size , int wait, color kwadratcolor){ this.x = x; this.y = y; this.nrx = nrx; this.nry = nry; this.size = size; this.kwadratcolor = kwadratcolor; this.wait = wait; } public void changecolor(random gen){ kwadratcolor = new java.awt.color(gen.nextint(255), gen.nextint(255), gen.nextint(255) ); } public void changecolor(color x){ kwadratcolor = x; } }
Comments
Post a Comment