S
SeppenToni
Gast
Hi
Ich bin dabei einen kleinen Ticker zu bauen, d.h. eigentlich nur eine Leiste, in der von Rechts nach Links ein beliebiger Text durchläuft. Dazu habe ich eine Klasse erstellt, welche von JComponent erbt und in paintComponent die Informationen zeichnet, funktioniert auch alles wie es soll.
Allerdings gibt es ein kleines Problem - um die Animation zu realisieren, starte ich in der Klasse einen neuen Thread, der jeweils nach einem gewissen Intervall den Text um 1 Pixel verschiebt. Das Problem ist nun, wie/wo ich diesen Thread wieder beenden kann oder soll. Gibt es irgendeinen Event oder eine Methode, die aufgerufen wird, wenn ein Component nicht mehr benötigt wird?
Ich habe gemerkt, dass wenn ich beim Parent als DefaultCloseOperation EXIT_ON_CLOSE wähle der Thread beim Schliessen des Fensters beendet wird, ich denke aber, dass hierbei nur der Thread abgeschossen und nicht automatisch sauber beendet wird. Wählt man nämlich DISPOSE_ON_CLOSE, läuft das Programm weiter...
Problem ist also: Wie erfährt ein Component, dass das Programm bzw. das aktuelle Fenster jetzt beendet wird um den gestarteten Thread sauber zu beenden? Ich habe bereits verschiedenste Events, sowie einen Destructor ohne Erfolg versucht.
Ich möchte das Beenden nicht vom Parent aus starten, da dieser Component ohne weiteres in verschiedenen Anwendungen ohne Anpassung funktionieren soll (also beispielsweise in einem JFrame, JDialog, JPanel, was auch immer, egal ob DIPOSE oder EXIT_ON_CLOSE).
Hat da jemand eine Idee?
Erstmal vielen Dank, SeppenToni
Ich bin dabei einen kleinen Ticker zu bauen, d.h. eigentlich nur eine Leiste, in der von Rechts nach Links ein beliebiger Text durchläuft. Dazu habe ich eine Klasse erstellt, welche von JComponent erbt und in paintComponent die Informationen zeichnet, funktioniert auch alles wie es soll.
Allerdings gibt es ein kleines Problem - um die Animation zu realisieren, starte ich in der Klasse einen neuen Thread, der jeweils nach einem gewissen Intervall den Text um 1 Pixel verschiebt. Das Problem ist nun, wie/wo ich diesen Thread wieder beenden kann oder soll. Gibt es irgendeinen Event oder eine Methode, die aufgerufen wird, wenn ein Component nicht mehr benötigt wird?
Ich habe gemerkt, dass wenn ich beim Parent als DefaultCloseOperation EXIT_ON_CLOSE wähle der Thread beim Schliessen des Fensters beendet wird, ich denke aber, dass hierbei nur der Thread abgeschossen und nicht automatisch sauber beendet wird. Wählt man nämlich DISPOSE_ON_CLOSE, läuft das Programm weiter...
Problem ist also: Wie erfährt ein Component, dass das Programm bzw. das aktuelle Fenster jetzt beendet wird um den gestarteten Thread sauber zu beenden? Ich habe bereits verschiedenste Events, sowie einen Destructor ohne Erfolg versucht.
Ich möchte das Beenden nicht vom Parent aus starten, da dieser Component ohne weiteres in verschiedenen Anwendungen ohne Anpassung funktionieren soll (also beispielsweise in einem JFrame, JDialog, JPanel, was auch immer, egal ob DIPOSE oder EXIT_ON_CLOSE).
Hat da jemand eine Idee?
Erstmal vielen Dank, SeppenToni