Rahmen bei jLabel

Hallo,
ich programmiere eigentlich seit geraumer Zeit in Java, komme aber schlichtweg nicht mit diesem Problem voran:

Ich habe ein jLabel, das einen normalen Rahmen besitzt. Klickt ein Benutzer nun auf einen Button, soll ZUERST der Rahmen eine grüne Farbe bekommen, und DANACH ein mp3-File (ca. 1,3sec) mittels jLayer abgespielt werden. Nachdem das Soundfile abgespielt wurde soll der Rahmen wieder auf seinen Standartwert zurückgesetzt werden.
Das Problem ist, dass zuerst der Sound abgespielt wird, und scheinbar erst danach der Rahmen seine Farbe bekommt. Da dieser aber beim Abruf einer Funktion wieder zurückgesetzt wird, ist nichts von dem Ereignis sichtbar.
Was ich nun will ist, dass zuerst der Rahmen seine Farbe bekommt, dann das mp3-File abgespielt wird (dh. soll der grüne Rahmen während des Abspielens sichtbar sein) und danach alles auf die Standartwerte zurückgesetzt wird. Die relevanten Codeabschnitte habe ich angehängt - was für eine triviale Sache mache ich falsch? Danke für evtl. Hilfestellungen!

Java:
// Nur die notwendigsten Codeabschnitte
private javax.swing.border.Border border = javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED);

public void loadNext() {
	jLabel1.setBorder(this.border);
}

public void playCorrSound() {
	// Hier der jLayer-code für das Abspielen der Sounddate
	// kein Thread verwendet
}

public void jButton1MouseClicked(java.awt.event.MouseEvent e) {
	jLabel1.setBorder(new LineBorder(Color.GREEN,2));
	playCorrSound();
	loadNext();
}
 

eRaaaa

Top Contributor
Probier`s mal so:
Java:
				jLabel1.setBorder(new LineBorder(Color.GREEN, 2));
				new Thread(new Runnable() {
					@Override
					public void run() {
						playCorrSound();
						SwingUtilities.invokeLater(new Runnable() {
							public void run() {
								loadNext();
							}
						});
					}
				}).start();
 

eRaaaa

Top Contributor
Mhm,ich bin gerade etwas schreibfaul, du kannst dir mal
Lesson: Concurrency in Swing (The Java™ Tutorials > Creating a GUI With JFC/Swing)
und
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 16.25 AWT, Swing und die Threads
durchlesen

Kurzfassung: Es gibt einen Thread(EDT) der fürs Zeichnen usw. zuständig ist. Dieser Thread führt auch den Code in den Listenern aus. Wenn du nun eine lange Aktion in dem Listener ausführst, "blockierst" du quasi diesen Thread, weil er ja damit beschäftigt ist diese lange Aktion auszuführen. In der Zeit kann er dann auch nicht zeichnen(Border neuzeichnen z.B.), deshalb müssen lange Aktion in einen neuen Thread ausgelagert werden.(hier new Thread(new Runnable))
Da wiederum alle Änderungen(einige Ausnahmen) an der Oberfläche von dem anderen Thread(EDT) ausgeführt werden müssen, musst du den Code(loadNext()) in die "Ereignisschlange" des Threads einreihen(hier SwingUtilities)

da das jetzt nur etwas oberflächlich erklärt wurde, solltest du dir auf jeden Fall mal die zwei Links durchlesen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
H Best Practice JavaFX TableView mit Zell-Rahmen anstelle von Zeilen-Balken Java Basics - Anfänger-Themen 1
P Wichtige Frage zu Border bzw Rahmen Java Basics - Anfänger-Themen 1
M Rahmen für undekorierten JFrame Java Basics - Anfänger-Themen 6
M Zelle von JTable mit Rahmen versehen Java Basics - Anfänger-Themen 4
E JButton Hintergrund / Rahmen entfernen? Java Basics - Anfänger-Themen 4
A Uebungsaufgabe: HeadLine mit Rahmen?! Java Basics - Anfänger-Themen 6
K Rahmen Zeichnen ? Java Basics - Anfänger-Themen 2
B Button ohne Rahmen Java Basics - Anfänger-Themen 3
G Ist es möglich, den 'Rahmen' eines Frames durch Grafiken. Java Basics - Anfänger-Themen 5
J Rahmen bei frame Java Basics - Anfänger-Themen 3
G Rahmen um 5 Textfelder Java Basics - Anfänger-Themen 4
P Abstand vom Rahmen zu Komponenten bestimmen? Java Basics - Anfänger-Themen 3
O Ein Sichtbarer Rahmen (in Farbe) um ein JPanel. Java Basics - Anfänger-Themen 5
S Rahmen zeichnen, wie heisst diese Componente Java Basics - Anfänger-Themen 6
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M Rahmen um Basiskomponenten Java Basics - Anfänger-Themen 2
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
Tom/S JLabel Icon Farbe Java Basics - Anfänger-Themen 2
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
S Kontrollieren, ob ein Jlabel nicht sichtbar ist Java Basics - Anfänger-Themen 6
S Input/Output JLabel verschieben Java Basics - Anfänger-Themen 7
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
CptK Methoden JLabel erstellen & verschieben Java Basics - Anfänger-Themen 1
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
CptK JLabel im Array Java Basics - Anfänger-Themen 2
L Threads Mit Threads JLabel ändern! Java Basics - Anfänger-Themen 2
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
P Auf JLabel zugreifen Java Basics - Anfänger-Themen 12
P Erste Schritte JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 4
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
M Vererbung Ein JLabel einer Elternklasse anzeigen Java Basics - Anfänger-Themen 8
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
J Array in JLabel ausgeben Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
snipesss [Java] Schriftart und Schriftgröße von JLabel in einer Zeile festlegen? Java Basics - Anfänger-Themen 3
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
S JLabel sichtbar machen/GUI Java Basics - Anfänger-Themen 3
WetWer Animation JLabel Java Basics - Anfänger-Themen 2
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
L Variable für JLabel wird nicht erzeugt Java Basics - Anfänger-Themen 6
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
T Objekt in ein JLabel der GUI übergeben Java Basics - Anfänger-Themen 3
S JLabel an Methode übergeben Java Basics - Anfänger-Themen 2
D Ausgabe über JLabel Java Basics - Anfänger-Themen 12
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
M Fangspiel-Probleme (JLabel, Objekt zurücksetzen) Java Basics - Anfänger-Themen 3
C Rechenaufgabe im JLabel ausrechnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
Z JLabel Icon ändern Java Basics - Anfänger-Themen 2
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
G drawString/ JLabel updaten Java Basics - Anfänger-Themen 1
G mouseDragged auf Jlabel Java Basics - Anfänger-Themen 2
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
M Frage zu JLabel Java Basics - Anfänger-Themen 5
T JLabel-Bilderpfad ändern... Java Basics - Anfänger-Themen 2
T JLabel anzeigen lassen... Java Basics - Anfänger-Themen 6
T Mein String in ein JLabel stecken Java Basics - Anfänger-Themen 2
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
T JLabel zum klicken... Java Basics - Anfänger-Themen 15
W Datentypen String-Ausgabe in jLabel Java Basics - Anfänger-Themen 14
J JLabel Ausgabe Java Basics - Anfänger-Themen 3
B mouseClicked JLabel Array mitteilen Java Basics - Anfänger-Themen 6
L JLabel Icon Größe anpassen Java Basics - Anfänger-Themen 11
A Zeilenumbruch im Jlabel Java Basics - Anfänger-Themen 11
3 JLabel - Text in mehreren Zeilen zentrieren Java Basics - Anfänger-Themen 5
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
G GUI JLabel ersetzen Java Basics - Anfänger-Themen 3
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
A Bildgröße automatisch auf JLabel Größe konvertieren Java Basics - Anfänger-Themen 9
S Text in einem JLabel nur zum Teil Fett Java Basics - Anfänger-Themen 2
B JLabel Text Formatierung Java Basics - Anfänger-Themen 5
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
S NullPointerException bei zweidimensionalem JLabel-Array Java Basics - Anfänger-Themen 4
T JLabel richtig anordnen? wie gehts? Java Basics - Anfänger-Themen 9
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
SexyPenny90 JLabel Text und Icon untereinander verwenden Java Basics - Anfänger-Themen 3
B JLabel löschen/überschreiben Java Basics - Anfänger-Themen 10
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
A JLabel erst auf null dann auf einen Wert setzen Java Basics - Anfänger-Themen 7
F JLabel-Background Java Basics - Anfänger-Themen 7
T JLabel Farbe ändern, Problem Java Basics - Anfänger-Themen 2
T JLabel mit Text und Bild Java Basics - Anfänger-Themen 3
C JLabel markieren Java Basics - Anfänger-Themen 2
M BeanBinding Jlist an Jlabel Java Basics - Anfänger-Themen 2
M OOP JLabel werden nicht korrekt eingefärbt Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben