JLabel nach 5 Sekunden wieder leeren

F

FranzFerdinand

Gast
Hallöle,

ich hab da mal ne Frage zu den JLabels. Ich hab ein nettes Textfeld eingerichtet, wo man Dinge eingeben kann und er dann je nach Inhalt eine Meldung in JLabelMeldung ausgibt.
Die Meldung soll nach 5 Sekunden wieder verschwinden.
Ich habe das bisher so gelöst:
Java:
jLabelMeldung.setText("Deine Eingabe war inkorrekt!");
		Thread.sleep(5000);
		jLabelMeldung.setText("");

Diese Variante ist aber schon etwas arm. Zumal Thread.sleep ja auch das ganze Fenster einfriert. Er soll nur einfach im Hintergrund 5 Sekunden zählen und dann den Befehl zum leeren ausführen.

Hat da jemand eine Idee dazu?


Herzlichsten Dank!

Schöne Grüße
Lukas
 

JCODA

Top Contributor
Java:
jLabelMeldung.setText("Deine Eingabe war inkorrekt!");
		new Timer(5000, new ActionListener(){
public void actionPerformed(ActionEvent ae){
jLabelMeldung.setText("");
}

}).start();


so ?
EDIT: hierfür muss jLabelMeldung final sein.
 
Zuletzt bearbeitet:

Androbin

Bekanntes Mitglied
Java:
jLabelMeldung.setText( "Deine Eingabe war inkorrekt!" );
new Timer( 5000, new ActionListener() {
public void actionPerformed( ActionEvent e ) {
jLabelMeldung.setText( "" );
} } ).start();
so ?
EDIT: hierfür muss jLabelMeldung final sein.
Gute Idee! Aber warum muss es denn final sein?
 
F

FranzFerdinand

Gast
Hallöle,

danke schön. Nachdem ich entsprechend den Timer und Action Event importiert habe, ging das ganze perfekt, danke!
Aber meine Frage bleibt auch, wieso das Final sein muss?
Es geht bei mir nämlich auch ohne.

Oder meinst Du möglicherweise, dass es ohne geht, aber ohne Final eventuell Probleme machen könnte?

Mein JLabelMeldung ist in der Hauptklasse protected static.

Gruß
Lukas :)
 

JCODA

Top Contributor
Okay, jetzt hab ich auch wieder 'was dazugelernt:

Früher mussten lokale Variablen, die in einem anonymen Objekt benutzt werden sollten final sein. Jetzt meckert mein Eclipse erst, wenn man tatsächlich die Variable erneut zuweisen möchte. Siehe:

Java:
import java.awt.event.*;
import javax.swing.Timer;

public class FinalTest {
	public FinalTest(){		
		String hi = "hallo";
		new Timer(1000,new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent ae) {
				hi = "blub";				
			}			
		});		
	}
}

Mit dem Kommentar: Local variable hi defined in an enclosing scope must be final or effectively final.

Ich habe gerade danach gesucht, und gesehen, dass das eine Änderung mit Java8 ist:

However, starting in Java SE 8, a local class can access local variables and parameters of the enclosing block that are final or effectively final. A variable or parameter whose value is never changed after it is initialized is effectively final.

Siehe hierzu: java - Difference between final and effectively final - Stack Overflow

Würde man hi als Instanzvariable deklarieren funktioniert es natürlich.
 

JavaDude

Mitglied
Man könnte das Ganze durchaus per Thread lösen, auch ohne das das ganze Fenster einfriert. Dafür darfst du die Methode nur nicht statisch aufrufen, sondern musst einen neuen Thread mit eigener Run-Methode starten, der 5 Sekunden "schläft" und dann den Text zurücksetzt. Ich sehe nicht, was daran arm sein sollte ^^
Wenn du's ganz kompliziert haben möchtest, kannst du auch eine eigene Klasse schreiben, die eine Methode besitzt, der ein JLabel übergeben wird, dessen Text zurückgesetzt werden soll. Dann könntest du den Thread/Timer auch da abarbeiten lassen.
 
F

FranzFerdinand

Gast
Hallöle,

ich habe es nun so gelöst:
Java:
public static void eingabeinkorrekt(int timerzeit) {
		jLabelMeldung.setText("Deine Eingabe war inkorrekt!");
		new Timer(timerzeit, new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		jLabelMeldung.setText("");
		} } ).start();
	}

Und bei Bedarf rufe ich es beispielsweise für 5 Sekunden hiermit auf:
Java:
eingabeinkorrekt(5000);

Das funktioniert auch teilweise sehr gut. Aber immer nur am Anfang.
Bei den ersten 2-3 Versuchen klappt das immer mit 5 Sekunden.
Aber wenn ich das danach immer mal mache, dann kommt es manchmal gar nicht, manchmal nach 2 Sekunden, oder auch 7, und des öfteren verschwindet es gar nicht mehr.

Das scheint also irgendwie noch Fehlerbehaftet zu sein.

Mögliche Ideen, wieso das so sein kann?:)

Gruß
Lukas
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
Y Warum wird das JLabel falsch verschoben? Allgemeine Java-Themen 1
heinz ketchup String im JLabel ausgeben und erneuern Allgemeine Java-Themen 6
gamebreiti Swing JLabel wird nicht angezeigt Allgemeine Java-Themen 4
Q JLabel Textausgabe funktioniert nicht Allgemeine Java-Themen 4
A Klassen und JLabel's Allgemeine Java-Themen 12
S JLabel auf JPanel Allgemeine Java-Themen 10
D JLabel in (int) Array Allgemeine Java-Themen 8
JAVAnnik Bilder in JLabel Array einfügen Allgemeine Java-Themen 2
X Kann JLabel in JFrame nicht aktualisieren Allgemeine Java-Themen 3
T Edit: JLabel+MouseListener oeffnet mehrere Instanzen Allgemeine Java-Themen 5
N Jlabel automatisch anpassen Allgemeine Java-Themen 3
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
M Escape Sequence in JLabel Allgemeine Java-Themen 4
L JLabel um 90 Grad drehen Allgemeine Java-Themen 6
T ImageIcon und JLabel Allgemeine Java-Themen 16
D JLabel aktualisieren Allgemeine Java-Themen 4
N KeyEvent / JLabel Allgemeine Java-Themen 5
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
E Pixelweise auf einem JPanel/JLabel o.ä. zeichnen Allgemeine Java-Themen 4
S JLabel Allgemeine Java-Themen 2
B Text von JLabel wird nicht aktualisiert Allgemeine Java-Themen 5
M ein JLabel in einem JLabel? Allgemeine Java-Themen 3
M JLabel an Textlänge anpassen / Textlänge in pixel Allgemeine Java-Themen 3
B JCheckBox als JLabel Allgemeine Java-Themen 11
sliwalker JLabel-"Synchronisations"-Problem Allgemeine Java-Themen 7
G Html Link in einem JLabel? Allgemeine Java-Themen 3
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
I In Java geschriebene Software nach Mac OS portieren Allgemeine Java-Themen 7
M TicTacToe Sound nach jedem Zug Allgemeine Java-Themen 21
I HTML / XHTML Seite nach Excel exportieren. Suche Lib Allgemeine Java-Themen 12
J4n5chmiddi Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java Allgemeine Java-Themen 12
pkm Frage nach eventuellem syntaktischen Zucker bei der Konkatenation von ArrayLists Allgemeine Java-Themen 4
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
H Collections Aktuellen Index generell und nach Sortierung ausgeben Allgemeine Java-Themen 6
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
S Wörterliste nach Wörtern mit u durchsuchen und diese auf der Konsole ausgeben lassen Allgemeine Java-Themen 33
W Pdf verwerfen, weil Checkbox nach Unterschrift geaendert wurde Allgemeine Java-Themen 5
G File not found - nach dem Kompilieren Allgemeine Java-Themen 6
S Swing Speichern nach Button-Klick Allgemeine Java-Themen 5
Meeresgott Effizientester Weg um nach der Value einer verschachtelten Map aufzulösen Allgemeine Java-Themen 5
M Java 8 nach Java 6 konvertieren Allgemeine Java-Themen 7
N Neustarten des Codes nach der Fehlermeldung Allgemeine Java-Themen 17
L Nach dem Login // Java Desktop Software Allgemeine Java-Themen 7
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J Jasper Reports - Compilerproblem nach Umstellung von Groovy auf Java Allgemeine Java-Themen 7
looparda Liste filtern nach Prädikaten verschiedener Typen Allgemeine Java-Themen 3
S Apache POI Filtern nach bestimmten Kriterium Allgemeine Java-Themen 1
L Korrektur nach der Berechnung vornehmen, aber wie? Allgemeine Java-Themen 11
C Config nach bestimmten Wertdurchsuchen. Allgemeine Java-Themen 2
B Suche nach einem Testprogramm für meine BA Allgemeine Java-Themen 0
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
G Eclipse Java findet MySQL Driver nach export nicht mehr Allgemeine Java-Themen 2
H IDEA IntelliJ Java Mail funktioniert nach Export nicht mehr! Allgemeine Java-Themen 1
F Zurnung nach Buchstaben und deren Prüfung Allgemeine Java-Themen 9
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
MiMa Sortieren nach Stellenangaben Allgemeine Java-Themen 7
L Erste Schritte Liste von Datums filter nach Monate Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
J Ausgabe von Links nach Rechts ausgeben? Allgemeine Java-Themen 2
K JAR Datei Corrupt nach Kopieren Allgemeine Java-Themen 4
The Pi 2D-Grafik Tic Tac Toe nach Gewinn rot Allgemeine Java-Themen 1
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
C PDFBox: Nach RegEx ganze Zeile Allgemeine Java-Themen 4
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
L Suche nach CalDav Server API Allgemeine Java-Themen 0
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
T Textarea nach nur 1 wort durchsuchen Allgemeine Java-Themen 3
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
C Eclipse OutOfMemory nach dem exportieren Allgemeine Java-Themen 4
D Erste Schritte Array von einer forschleife nach ausserhalb trasferieren Allgemeine Java-Themen 3
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
B Bild aus Jar kann nach Export nicht mehr gefunden werden Allgemeine Java-Themen 13
B Umgebungsvariable Anpassen der Umgebungsvariablen nach Java-Update ? Allgemeine Java-Themen 14
H jid3lib nach schreiben keine Tags im Folder angezeigt Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
J Programm meldet "Keine Rückmeldung" nach Verbindung zum Server Allgemeine Java-Themen 4
E Java wird beendet nach paar Sekunden Allgemeine Java-Themen 14
H Best Practice setHeader in jsp nach RequestDispatcher.include Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
M .jar nach Datei prüfen Allgemeine Java-Themen 2
F String nach Schlüsselwörtern durchsuchen und ganze Zeile ausgeben Allgemeine Java-Themen 4
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben