Tråde ? Applet

Tags:    java

Hej. Jeg kunne godt tænke mig lidt hjælp her:

Dette er min class "Traad.java":
Fold kodeboks ind/udKode 


Og her en min class "Start.java":
Fold kodeboks ind/udKode 


Problemet er at jeg jo kører en applet. Jeg skal bruge g.drawString og ikke System.out.println. Men stadig skal det fungere med mulighed for mange threads, og samtidig med fx et delay på hvornår det udskrives på skærmen. Og nu hvor det jo skal være g.drawString skal der jo også angives en position.
HJÆLP! :)



Det lyder som en rigtig hyggelig opgave du har på border der :)

Det med at der skal styres en position, og evt timing, fortæller mig at du skal samle dit g.drawString arbejde et centralt sted, og det samme sted styrer du den timing og trådsikrer processen.

En ide kunne være at lave en klasse (class SystemOut ?) med en metode (f.eks. public static synchronized println(String data) ) som internt håndterer enten at tegne data ud og opdatere positions variablerne, eller smider det i en kø som en anden tråd tømmer ud på skærmen af og til (den timer funktion du snakkede om).
Ved eftertanke er der vist noget med at man ikke kan synchronize en static metode, så du må nok bruge et singleton mønster i stedet, men ideen er den samme.

Så skal dine tråde ikke tænke på trådsikkerhed (i forbindelse med output ihvertfald), og skiftet fra System.out.println til din nye metode (f.eks SystemOut.println med min eksempel navngivning) bliver ikke stort.

Håber det giver mening ;)



Hmm , sjusk.
println(String data) er selvfølgelig med retur-typen void.

[Redigeret d. 19/10-05 13:58:12 af Jonatan Hertel]



t