@icarus2: Schlafmangel? 
Das ganze hat mit Threads nichts zu tun, und icarus2 schreibt sonst glaubich auch eher vernünftige Sachen
Das ganze funktioniert so und ist in bezug auf die Threads soweit ich das sehe vollkommen richtig. Das Problem ist, dass es zwei DrawPane-Instanzen gibt, und die Quasi "übereinandergemalt" werden müssten. Wenn man im Konstruktor sowas macht wie
[code]
p = new DrawPane();
q = new DrawPane();
f.setLayout(null);
f.add(p);
f.add(q);
p.setBounds(0,0,500,500);
q.setBounds(0,0,500,500);
p.setOpaque(false);
q.setOpaque(false);
f.setLocationRelativeTo(null);
[/code]
funktioniert das auch alles. Aber besser wäre es natürlich, wenn es nur EIN DrawPane gäbe, das beliebig viele Kreise zeichnen könnte (das könnten dann z.B. objekte einer eigenen Klasse "Circle" sein, die eine Position speichert, die von den Threads verändert wird, und von denen dann mehrere in einer Liste im DrawPane liegen könnten...)