Events und Sleep?

JUserToto

Aktives Mitglied
Huhu,

ich habe ein kleine, generelle Frage. Ich kann mir aber irgendwie keine Antwort ergoogeln.

Und zwar habe ich eine Komponente, auf die man klicken kann. Dann wird ein Sound abgespielt. So lang, wie der Sound abgespielt wird, soll man nichts anderes machen können, deswegen berechne ich die Länge des Sounds und mache ein Thread.sleep.
Nun fällt mir auf, dass ich, während der Thread schläft trotzdem klicken kann. Der Klick wird irgendwie "zwischengespeichert" und wenn der Thread wieder aktiv ist, wird er verarbeitet und der Sound erklingt nochmal.
Werden die Events tatsächlich in eine Art Warteschlange versetzt, während der Thread schläft, oder liegt es womöglich an etwas anderem?

lg Toto
 

Marco13

Top Contributor
Hmja... Thread.sleep auf dem Thread, der sich auch um's GUI kümmert ist eigentlich schlecht. Wenn dort etwas gemacht wird, das länger dauert, sollte das in einem eigenen Thread passieren. Das würde natürlich nicht verhindern, dass man z.B. den Button mehrfach klingt, aber das ist in gewissen Grenzen ja unabhängig davon: Du könntest am Anfang, bevor der sound losgeht, button.setEnabled(false); machen, und am Ende button.setEnabled(true);. Das ganze am besten mit einem SwingWorker, schau dir die Klasse mal an.
 

JUserToto

Aktives Mitglied
Hallo,

dankeschön. Ich habe es mittlerweile zum eigenen Thread gemacht. Ursprünglich war es auch ein eigener Thread, ich glaube ich habe es geändert, weil ich nicht rausgefunden habe, wie ich quasi checken kann, ob ein Audioclip beendet ist. Naja, jedenfalls funktioniert es nun.
Ich schaue mir SwingWorker trotzdem mal an, man liest ja ständig davon.

lg Toto
 
M

mind_

Gast
Ich denke mal, Dein Problem ist inzwischen gelöst aber für alle, die das Problem sonst noch haben Ihr könnt auch eine einfachere Lösung wählen, die ist zwar ein wenig "brutal" aber gut ...

Threads werden in der Regel über Thread.start() gestartet aber der ruft (im Prinzip) nur Thread.run() an.

Wenn Du also Thread.run() anstelle von Thread.start() anrufst wird die Methode run() angerufen und während diese ausgeführt wird ist dein Button "beschäftigt".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G mouse events AWT, Swing, JavaFX & SWT 6
Heldderschatten Java Events und Interfaces AWT, Swing, JavaFX & SWT 18
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
D Swing Events vom JLayer abfangen AWT, Swing, JavaFX & SWT 2
D Transparentes Hauptfenster Events AWT, Swing, JavaFX & SWT 1
M Swing Hinter die Kulissen von Events (addActionListener) AWT, Swing, JavaFX & SWT 6
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R SWT Eigene Events erstellen und werfen AWT, Swing, JavaFX & SWT 59
S Mouse Events in einer sortierten JTable unterscheiden AWT, Swing, JavaFX & SWT 18
C Swing Simulation von Drag and Drop Events AWT, Swing, JavaFX & SWT 3
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
E JFace ListSelectionDialog & Mouse-Events? AWT, Swing, JavaFX & SWT 2
N Variablen in Events AWT, Swing, JavaFX & SWT 4
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
L Swing Auslöser eines Events finden? AWT, Swing, JavaFX & SWT 6
R JTable - eigener Editor - Mouse events AWT, Swing, JavaFX & SWT 2
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
Weltall 7 AWT Maus-Events werden doppelt ausgeführt AWT, Swing, JavaFX & SWT 12
0 Events werden nicht ausgelöst AWT, Swing, JavaFX & SWT 2
V Swing Auslösen von zwei Events hintereinander AWT, Swing, JavaFX & SWT 4
T Swing Control und Events AWT, Swing, JavaFX & SWT 8
MrMilti Gezeichnete Java2D Elemente mit Events versehen AWT, Swing, JavaFX & SWT 3
R Events - Nur auf eines reagieren AWT, Swing, JavaFX & SWT 3
T JComboBox: ActionListener/ItemListener wie nur auf bestimmte Events reagieren? AWT, Swing, JavaFX & SWT 7
B Swing setDefaultButton geht nicht - Komponente fängt Events ab AWT, Swing, JavaFX & SWT 5
R Key und Mouse Events AWT, Swing, JavaFX & SWT 2
K Alle Events abfangen mit GlassPane AWT, Swing, JavaFX & SWT 7
T SWT - Table Events AWT, Swing, JavaFX & SWT 3
hdi Events nicht plattform-unabhängig? AWT, Swing, JavaFX & SWT 14
M SWT: eigene Events AWT, Swing, JavaFX & SWT 9
G Reihenfolge von Events AWT, Swing, JavaFX & SWT 4
D Events bei Tabs in einem Editor AWT, Swing, JavaFX & SWT 2
F Probleme mit MouseWheel events in SWT AWT, Swing, JavaFX & SWT 13
M Globale Events in Windows abfangen AWT, Swing, JavaFX & SWT 2
T Hilfe zu Events? AWT, Swing, JavaFX & SWT 6
S Events abfangen, nicht durchlassen AWT, Swing, JavaFX & SWT 2
T Events unterdrücken AWT, Swing, JavaFX & SWT 8
G An die Quelle einen events kommen AWT, Swing, JavaFX & SWT 2
M Problem mit verschachtelten Events und kein ausweg in sicht AWT, Swing, JavaFX & SWT 3
W Vom JPanel bekomme ich keine Events AWT, Swing, JavaFX & SWT 5
V Events an untere Layers weitergeben AWT, Swing, JavaFX & SWT 2
V events skippen AWT, Swing, JavaFX & SWT 14
M Events auslagern? AWT, Swing, JavaFX & SWT 6
F Events AWT, Swing, JavaFX & SWT 8
N SWT: GUI Windows Events AWT, Swing, JavaFX & SWT 8
I Globale Tastatur-Events abfragen AWT, Swing, JavaFX & SWT 3
D Events werden zu oft aufgerufen AWT, Swing, JavaFX & SWT 4
G Events AWT, Swing, JavaFX & SWT 2
K Mouse Events der Scrollbar/pane AWT, Swing, JavaFX & SWT 2
S Events fremdauslösen AWT, Swing, JavaFX & SWT 17
K Doppelte Events AWT, Swing, JavaFX & SWT 4
A Combobox Focus-Events, Tab in Tabelle AWT, Swing, JavaFX & SWT 7
D Events, Listener, GUI . Größeres Projekt AWT, Swing, JavaFX & SWT 4
A Vielschichtige GUI und Events? AWT, Swing, JavaFX & SWT 4
V JList mit Events Steuern ? AWT, Swing, JavaFX & SWT 15
S Rechner zu schnell für Events? AWT, Swing, JavaFX & SWT 14
G JTable und Events AWT, Swing, JavaFX & SWT 4
S Events bei 2 gleichen Jtree abfangen AWT, Swing, JavaFX & SWT 3
ShapeShifter JButton erzeugt zwei Events AWT, Swing, JavaFX & SWT 4
B Eigenes Events AWT, Swing, JavaFX & SWT 3
T JScrollPane-Events AWT, Swing, JavaFX & SWT 2
M JTable und Events AWT, Swing, JavaFX & SWT 4
K JComboBox: Endlosschleife durch Events AWT, Swing, JavaFX & SWT 4
K [JComboBox] ENTER löst zwei events aus? AWT, Swing, JavaFX & SWT 2
M Glasspane und dispatchen von Events AWT, Swing, JavaFX & SWT 6
H Events manuell aufrufen AWT, Swing, JavaFX & SWT 4
F JComboBox setEditable( true ) auf Tastatur Events reagieren AWT, Swing, JavaFX & SWT 4
T Swing 2 Thread.sleep parallel laufen lassen AWT, Swing, JavaFX & SWT 4
I (JPanel) paintComponent mit Zeitverschiebung (Sleep/Wait) AWT, Swing, JavaFX & SWT 1
L JavaFX Wait/Sleep/postedDelay - Einfach nur warten AWT, Swing, JavaFX & SWT 4
P Problem Thread.sleep() und JProgressBar AWT, Swing, JavaFX & SWT 7
A Thread und sleep(1000); AWT, Swing, JavaFX & SWT 7
S Timer oder Thread.sleep AWT, Swing, JavaFX & SWT 3
K Thread.sleep in GUI AWT, Swing, JavaFX & SWT 4
J Swing Swing und Sleep... AWT, Swing, JavaFX & SWT 2
S Thread.sleep() in einer methode fürs zeichen AWT, Swing, JavaFX & SWT 3
X Problem bei JTextArea und Thread.sleep() AWT, Swing, JavaFX & SWT 8
B Swing Swing und Thread.sleep() AWT, Swing, JavaFX & SWT 6
T thread.sleep Sprung Problem AWT, Swing, JavaFX & SWT 24
A Sleep Funktion / Thread-Problem ! AWT, Swing, JavaFX & SWT 11
S Problem mit 2 Thread.sleep AWT, Swing, JavaFX & SWT 3
M JTextArea in JScrollPane, Problem mit Thread.sleep() AWT, Swing, JavaFX & SWT 5
S Thread.sleep() beim Zeichnen auf Swing Komponenten? AWT, Swing, JavaFX & SWT 6
Y GBO friet bei Thread.sleep ein AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben