Witam
mam problem z wykorzystaniem współbieżności w API. Chciałem zrobić okienko w którym będą się rysowały trzy linie. Za każdą linię będzie odpowiadał dany wątek. To miałbyć wyścig linii poziomych równoległych z danego punktu do drugiego. Czas i nazwę określam w konstruktorze jednak nie wiem jaki sposób mam połączyć wątki z grafiką.
Moje wypociny:
JAVA:
import java.awt.;
import javax.swing.;
import java.awt.event.*;
public class Aplikacja2 extends JFrame{
public Graphics gDC;
class Watek extends Thread{
int nr; // nr watku
int cz; // czas uspienia watku
int odl;
String nazwa;
Watek(int nr,int cz,String nazwa){
this.nr=nr;
this.cz=cz;
this.odl=0;
start();
}
public void run(){
while(odl<300){
try{
odl++;
sleep(cz);
}catch(InterruptedException ex){}
switch(nr){
case 1: gDC.drawLine(50,50,50+odl,50); break;
case 2: gDC.drawLine(50,100,50+odl,100); break;
case 3: gDC.drawLine(50,150,50+odl,150); break;
}
}
}
}
class MyWindowAdapter extends WindowAdapter{
public void windowClosing(WindowEvent e){
dispose();
}
}
public Aplikacja2() {
addWindowListener(new MyWindowAdapter());
setSize(500,300);
setVisible(true);
}
public void paint(Graphics gDC){
gDC.clearRect(0,0,getSize().width,getSize().height);
Watek w1 = new Watek(1,100,"Kubica");
Watek w2 = new Watek(2,150,"Roger");
Watek w3 = new Watek(3,200,"Miller");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){public void run(){new Aplikacja2();}});
}
}