jak zrobic wykres animowany w aplecie z zakladkami

0

Witam

jak zrobic animowany wykres, tzn po wcisnieciu guzika "START" zaczyna sie rysowac wykres sinusoida, zeby ten wykres "plynal" i "Stop" zatrzymujemy. Ma to dzialac w aplecie z zakladkami. wzor na sinusoide jest w "// zakladka mostek"

Zalaczam ponizej fragment kodu

  public void paintComponent(Graphics g ) {
               super.paintComponent(g);
           
           //zmienne y-kowe do wykresów 
           double y = 0, b = 0, wz = 0, wzb=0;
                         
               //zakladka DIODA    	
                if (typFunkcji == "Dioda")
                {
                	//osie
                	g.setColor(Color.BLACK); //kolor osi czarny
           			g.drawLine(100, 50, 100, 250);
            		g.drawLine(0, 150, 150, 150);
            		g.drawLine(100,50,97,55);
            		g.drawLine(100,50,103,55);
            		g.drawLine(150,150,145,153);
            		g.drawLine(150,150,145,147);
            		//przeciecie uf if
            		g.drawLine(111,155,111,140);
            		g.drawLine(95,140,111,140);
            		Image rys = getImage(getDocumentBase(),"images/id.jpg");
            		g.drawImage(rys, 106,50, this);
            		Image rys2 = getImage(getDocumentBase(),"images/uk.jpg");
            		g.drawImage(rys2, 140,130, this);
            		Image rys3 = getImage(getDocumentBase(),"images/dioda.jpg");
            		g.drawImage(rys3, 10,255, this);
            		Image rys7 = getImage(getDocumentBase(),"images/uf.jpg");
            		g.drawImage(rys7, 109,158, this);
            		Image rys8 = getImage(getDocumentBase(),"images/if.jpg");
            		g.drawImage(rys8, 80,135, this);
            	
            	
        			//wykres czerwony
            	    g.setColor(Color.RED);
            	    if(fps>0)
            	    {
            	    
               for(int j=0; j<=fps;j++)
                	g.drawPolyline(diod_x1, diod_y1, j);
            	    }                                 
                               
                }
                
                //zakladka MOSTEK
                else if (typFunkcji == "Mostek"){
                
                		//osie cha-yka wejsciowa
                	g.setColor(Color.BLACK);
           			g.drawLine(0, 100, 200, 100);
            		g.drawLine(21, 40, 21, 150);
            		g.drawLine(21,40,18,45);
            		g.drawLine(21,40,24,45);
            		g.drawLine(200,100,195,103);
            		g.drawLine(200,100,195,97);
            		
            			//osie cha-yka wyjsciowa
                
           			g.drawLine(0, 210, 200, 210);
            		g.drawLine(21, 155, 21, 220);
            		g.drawLine(21,155,18,160);
            		g.drawLine(21,155,24,160);
            		g.drawLine(200,210,195,213);
            		g.drawLine(200,210,195,207);
            		Image rys5 = getImage(getDocumentBase(),"images/ug.jpg");
            		g.drawImage(rys5, 29,33, this);
            		Image rys6 = getImage(getDocumentBase(),"images/ul.jpg");
            		g.drawImage(rys6, 29,148, this);
            		Image rys17 = getImage(getDocumentBase(),"images/t.jpg");
            		g.drawImage(rys17, 205,95, this);
            		Image rys18 = getImage(getDocumentBase(),"images/t.jpg");
            		g.drawImage(rys18, 205,205, this);
                	g.setColor(Color.GREEN);


 //               
 //
//SINUSOIDA
//
  //  fps3, fps2 -okres, ampliduta (suwaki)       
    	
                  for (double x = 0; x < 189; x += 0.1) {                
                    	y = (Math.sin(x * fps3/20) * fps2*5 + 100);
                  		g.drawLine((int) x, (int) y, (int) x, (int) y);
                  	
   		/*	try{		Thread.sleep(1);
                     }catch (InterruptedException t){}*/
                  }
                    


                 g.setColor(Color.RED);
                     
                      for (double a = 0; a < 189; a += 0.1) {
                      
                      		b = (Math.sin(a * fps3/20) * fps2*5 +210);           
                    
                  			 if(b>=210)
                   				 {	
                   				 	b = 210+ (210-(Math.sin(a * fps3/20) * fps2*5 +210));
                   				 g.drawLine((int) a, (int) b, (int) a, (int) b);}
                  			  else {b = (Math.sin(a * fps3/20) * fps2*5 +210);
                   				 g.drawLine((int) a, (int) b, (int) a, (int) b);}
                  
                    			  }
                    Image rys4 = getImage(getDocumentBase(),"images/mostek.jpg");
            		g.drawImage(rys4, 20,230, this);
               
               	
             
                }
}
`</code>`
0

chodzi mi o cos takiego jak tutaj:

http://alfa.prz.rzeszow.pl/java/projekty/projekty2006/Bartlomiej_Grzesik_Elektronika/index.html

lub zeby wykres zaczynal sie rysowac od wspolrzednej 0,0

1 użytkowników online, w tym zalogowanych: 0, gości: 1