Thread probleme

Benzol

Erfahrenes Mitglied
Hey Leute,
habe aus einer Funktion einen Thread aufgerufen - nur ich weis nicht, wie ich den aus dem Programm stoppen kann.

Starten tue ich ihn so:

Java:
new Thread()
{							
	public void run()
	{
...

Nun dachte ich daran, eine globale Variable zu nehmen und bei run() einfach thread = this; zu sagen. So hätte ich aus dem Event von meinem Abbruch-Button einfach thread.destroy(); aufrufen können... geht aber nicht :)

Ich vermute jetzt einfach mal ganz stark, das es nicht sehr "schön" ist, einen Thread auf diese weise zu starten... nur der ganze Code ist schon etwas älter... bin froh, das ich noch durchsteige :rolleyes:

Dann habe ich mich gefragt, wie es sich machen lässt, das wenn ich auf meinen Fenster-Inhalt klicke, sich das Fenster verschieben lässt. Dazu habe ich leider noch nichts gefunden... jede Hilfe wäre echt klasse ;)
 
thread.destroy sollte man eh nur im Notfall aufrufen. Lege dir ein Feld an auf welches dein Thread zugreifen kann und beende ihn wenn das Flag falsch wird.
 
Also, in deinem Thread müsste doch eine Schleife laufen, z.b. ein while. So jetzt machst du dazu eine Methode, die die Abbruchsbedingung der while-Schleife auslöst.
 
Super, das hat gut funktioniert. Weis jemand noch etwas über mein anders Problem?

Dann habe ich mich gefragt, wie es sich machen lässt, das wenn ich auf meinen Fenster-Inhalt klicke, sich das Fenster verschieben lässt. Dazu habe ich leider noch nichts gefunden...
 
Klicken auf deinen Fensterinhalt kannst du mit deinem MouseEvent abfragen. Und für das Verschieben gibt es doch <Fenster>.setLocation().

Ach ja, ansonsten kann man die Fenster doch versicheben wenn man oben den Balke gedrückt hält ^^:rolleyes:
 
Ach ja, ansonsten kann man die Fenster doch versicheben wenn man oben den Balke gedrückt hält
Scherzkeks :) Das ist ausgeschaltet weil hässlig.. passt nicht in mein L&F ;)

Klicken auf deinen Fensterinhalt kannst du mit deinem MouseEvent abfragen. Und für das Verschieben gibt es doch <Fenster>.setLocation().
Übergibt er an das Event auch die Koodirnaten der maus, wenn die sich bewegt?
 
Du musst halt einen MouseClick- und einen MouseMotion-Listener erstellen.

Wenn geklickt und gehalten: setze Flag für's draggen

Wenn Flag gesetzt, setze im MouseMotionListener die Position des Fensters je nach Mauskoordinaten

Wenn Maustaste losgelassen, einfach Flag wieder zurücksetzen und die Fensterbewegung hört auf
 
Zurück