sich-nicht-erneuerndes-JLabel Problem

Status
Nicht offen für weitere Antworten.

Big Apple

Aktives Mitglied
Hallo,

mit diesem Code wird alle 10tel Sekunde der Inhalt eines JLabels erneuert, der Inhalt ist egal.
Leider wird der Inhalt immer übermahlt und nicht erst einmal gelehrt und dann erneuert.

Code:
public class t2 extends JFrame {

    private JLabel labelAusgabe = new JLabel();
    
    private static t2 frame;

    public t2() {

	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	this.setBackground(new Color(1.0F, 1.0F, 1.0F, 0.0F));

	this.add(labelAusgabe);
	this.setVisible(true);
	updateLabel();
    }

    private void updateLabel() {
	new Thread(new Runnable() {

	    public void run() {
		while(true) {
			// TODO Automatisch erstellter Methoden-Stub
			labelAusgabe.setText(String.valueOf(new Date().getTime()));
			try {
			    Thread.sleep(10);

			} catch (InterruptedException e) {
			}
		}

	    }

	}).start();

    }

    /**
         * @param args
         */
    public static void main(String[] args) {
	// TODO Automatisch erstellter Methoden-Stub
	frame = new t2();
    }

}

Schon mal danke für Antworten
 

The_S

Top Contributor
Also,

1.) Funktioniert dein code ohne Probleme bei mir. Welche Java-Version hast du?
2.) Aktaualisierst du die Anzeige nicht jede 10tel Sekunde, sondern alle 10 Millisekunden, was jede 100tel Sekunde entspricht
3.) Ist Swing nicht Thread-Sicher. Bei sowas verwendet man normalerweiße SwingUtilities#invokeLater
 
S

SlaterB

Gast
hmm, kann ich nicht nachvollziehen,
bei mir läufts und so ist ja auch das zu erwartene Verhalten von einem JLabel,
hast du genau diesen Code bei dir ausprobiert?

füge noch
this.setSize(400,400);
sonst sieht man anfangs gar nichts
 

Big Apple

Aktives Mitglied
*hüstel* mit den 10telSekunden habe ich mich vertan, etwas müde noch um diese Zeit.
Also ich habe die Version 1.5 (normal für einen Mac).
Wie würdest du das denn mit einem invokeLater machen?
 

The_S

Top Contributor
Hm, also wie gesagt, hier auf XP und mit 1.5 funktionierts ohne Probleme. Wenn du die Forensuche verwendest findest du sehr viele Beispiele zu invokeLater.

Noch 2 Anmerkungen:

1.) Super, dass du ein KSKB gepostet hast!
2.) Klassennamen schreibt man groß ;) .
 

Big Apple

Aktives Mitglied
zu 1) Ich weiß nicht genau die Kriterien für ein KSKB freue mich aber trotzdem, wenn du das nicht ironisch meinst.
zu 2) Ja wurde mir schon mal gesagt, mache aber immer viele kleine Tests und die schreibe ich dann immer klein.

Aber danke für den invokeLater Tipp.
 

The_S

Top Contributor
1.) ein KSKB ist ein kleines Beispielprogramm, dass den Fehler aufzeigt und mit möglichst wenig Code für uns nachvollziehbar macht. Von daher war dein Beispiel goldrichtig und meine Antwort kein bisschen ironisch gemeint.

2.) Wenn du es immer groß schreibst, kannst du es doch auch beim Testen groß schreiben ;) .
 

Big Apple

Aktives Mitglied
Also ich habe das nun so versucht:

Code:
SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        labelAusgabe.repaint();
    }
});

Geht leider auch nicht, und mit labelAusgabe.setText(strDatum) in dem invokeLater geht es auch nicht.
Mir ist aufgefallen das wenn ich das Fester vergrößere oder verkleiner (also das Fenster (soweit ich weiß) neu gezeichnet wird) ist alles wieder normal, also für eine 100tel Sekunde :)
this.repaint() oder frame.repaint() funktionieren leider nicht.
 
S

SlaterB

Gast
redest du wirklich von einem normalen JLabel oder hast du etwa eine eigene SubKlasse und paintComponent überschrieben?

hast du schon mal irgendwelche Beispiele aus dem gesamten Internet ausprobiert?,
wenn dort JLabel funktioniert oder nicht funktioniert, das wären beides hilfreiche Infos
 

Big Apple

Aktives Mitglied
Mein kompletter Code sieht so aus, keine einzige klasse wurde überschrieben

Code:
package Tests;

import java.awt.Color;
import java.util.Date;

import javax.swing.*;

public class t2 extends JFrame {
    
    private String strDatum;

    private JLabel labelAusgabe = new JLabel();

    private static t2 frame;

    public t2() {

	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	this.setBackground(new Color(1.0F, 1.0F, 1.0F, 0.0F));

	this.add(labelAusgabe);
	this.setVisible(true);
	updateLabel();
    }

    private void updateLabel() {
	new Thread(new Runnable() {

	    public void run() {
		while (true) {
		    // TODO Automatisch erstellter Methoden-Stub
		    strDatum = String.valueOf(new Date().getTime());
		    labelAusgabe.setText(strDatum);
		    try {
			Thread.sleep(10);

		    } catch (InterruptedException e) {
		    }
		    SwingUtilities.invokeLater(new Runnable() {
			public void run() {
			    
			    labelAusgabe.repaint();
			}
		    });

		}

	    }

	}).start();

    }

    public static void main(String[] args) {
	frame = new t2();
    }

}
 

HoaX

Top Contributor
wenn dus noch einfacher machen willst benutzt du den Timer von Swing, dann wird der code automatisch im Event-Thread aufgerufen
 

Big Apple

Aktives Mitglied
Nun ist mir aufgefallen, wenn ich das ganze mit einen Label (kei JLabel) mache geht es wunderbar.
Nur würde ich gerne mein ganzes Layout in Swing haben, könnt ihr mir da helfen?
 
S

SlaterB

Gast
ich dachte es geht wieder?

> this.setBackground(new Color(1.0F, 1.0F, 1.0F, 0.1F)); so geht es wieder
 

kleiner_held

Top Contributor
Ein AWT Label ist keine gute Wahl. Ich tippe auf einen Fehler im spezifischen Mac Look&Feel.

Probier mal jLabel.setOpaque(true);
 
S

SlaterB

Gast
vielleicht auf das ganze JFrame ein repaint() aufrufen,
damit auch der Hintergrund (irgendwo hinter JLabel) neugezeichnet wird
 

André Uhres

Top Contributor
Afaik kann man einen JFrame in Java nicht durchsichtig machen.
Daher sehe ich auch keinen direkten Sinn in einer durchsichtigen Hintergrundfarbe.
Ansonsten versuch mal
Code:
t2.this.getRootPane().repaint();
(Etwas Durchsichtiges kann sich ja eigentlich nicht selbst neu malen,
sondern das, was durchscheinen soll, muss neu gezeichnet werden.)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
IamArctic Quaxli Tutorial, Rotorblätter bewegen sich nicht mehr Java Basics - Anfänger-Themen 4
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
K Zufalsszahl soll sich nicht wiederholen Java Basics - Anfänger-Themen 9
CptK Datentypen Objekt lässt sich nicht zu arraylist hinzufügen Java Basics - Anfänger-Themen 2
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
L Programm lässt sich nicht starten! Java Basics - Anfänger-Themen 1
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
E App lässt sich nicht starten Java Basics - Anfänger-Themen 8
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
S String ändert sich nicht Java Basics - Anfänger-Themen 2
F MouseMotionListener - Objekt bewegt sich nicht Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
OlafHD Java Uhrzeit aktualisiert sich nicht Java Basics - Anfänger-Themen 2
J Java Datei lässt sich nicht kompilieren Java Basics - Anfänger-Themen 3
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Scanner lässt sich nicht importieren Java Basics - Anfänger-Themen 1
P Programm lässt sich nicht starten - Klasse mit Hauptmethode nicht gefunden Java Basics - Anfänger-Themen 9
B Compiler-Fehler [Lejos] [RCX] Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 5
N Von Kopf bis Fuss TestArrays lässt sich nicht lösen Java Basics - Anfänger-Themen 5
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
T GUI öffnet sich nicht Java Basics - Anfänger-Themen 23
G Java lässt sich nicht installieren Java Basics - Anfänger-Themen 1
L0MiN Datei lässt sich nicht ausführen Java Basics - Anfänger-Themen 3
P Threads Objekt bewegt sich nicht. Java Basics - Anfänger-Themen 12
M Eclipse startet nicht mehr (eclipse.exe beendet sich selbst)? Java Basics - Anfänger-Themen 5
A Dinge lassen sich nicht importieren Java Basics - Anfänger-Themen 7
A JDialog öffnet sich nicht Java Basics - Anfänger-Themen 7
F Erste Schritte Sich nicht ständig verrennen? Java Basics - Anfänger-Themen 11
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
M Spaltenbreite läßt sich nicht anpassen Java Basics - Anfänger-Themen 0
A Java-Zeilenprogramm lässt sich nicht exportieren Java Basics - Anfänger-Themen 13
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
G zwei Objekte bewegen - der eine bewegt sich nicht flüssig? Java Basics - Anfänger-Themen 10
L Eclipse.exe öffnet sich nicht. Java Basics - Anfänger-Themen 7
D Erste Schritte Java Konsole öffnet sich nicht Java Basics - Anfänger-Themen 4
E jar lässt sich nicht ausführen Java Basics - Anfänger-Themen 16
V Compiler-Fehler Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 22
M Java Class File lässt sich nicht ausführen Java Basics - Anfänger-Themen 3
D Programm öffnet sich nicht Java Basics - Anfänger-Themen 5
Rudolf Umgebungsvariable Jar Dateien lassen sich nicht ausführen Java Basics - Anfänger-Themen 4
L Umgebungsvariable Umgebungsvariable lasst sich nicht ändern Java Basics - Anfänger-Themen 2
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
Z Integer erhöht sich nicht! Java Basics - Anfänger-Themen 8
B Methoden Methode lässt sich nicht selbst aufrufen? Java Basics - Anfänger-Themen 3
M Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 17
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P Variablen lassen sich nicht ändern Java Basics - Anfänger-Themen 13
R Daten aus ArrayList lassen sich nicht auslesen Java Basics - Anfänger-Themen 12
Y .class Ausführung nicht möglich - Path lässt sich nicht ändern Java Basics - Anfänger-Themen 8
M Compiler-Fehler .jar Dateien lassen sich nicht ausführen! Java Basics - Anfänger-Themen 4
M JNLP läßt sich nicht starten Java Basics - Anfänger-Themen 5
F Textfenster lässt sich nicht schließen Java Basics - Anfänger-Themen 3
J Classpath Programm lässt sich nicht ausführen Java Basics - Anfänger-Themen 5
R Variable lasst sich nicht erhöhen Java Basics - Anfänger-Themen 3
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
G Logger merkt sich seinen Level nicht Java Basics - Anfänger-Themen 6
H programm lässt sich nicht compilieren Java Basics - Anfänger-Themen 7
S JUnit: Konsole aktualisiert sich nicht Java Basics - Anfänger-Themen 3
W [Java Archive (JAR) Datei erstellen] Lässt sich nicht ausfürhren Java Basics - Anfänger-Themen 7
C Daten einer JTable lassen sich nicht ändern Java Basics - Anfänger-Themen 6
C Label ändert ändert sich nicht Java Basics - Anfänger-Themen 4
T Programm läßt sich nicht kompilieren Java Basics - Anfänger-Themen 4
M selbst gezipptes File lässt sich nicht öffnen Java Basics - Anfänger-Themen 2
U String lässt sich nicht in txt datei schreiben! Java Basics - Anfänger-Themen 7
R jLabel lässt sich nicht public setzen?? Java Basics - Anfänger-Themen 15
L Programm lässt sich nicht starten Java Basics - Anfänger-Themen 9
R Foreground Color ändert sich nicht Java Basics - Anfänger-Themen 5
I Gui läßt sich nicht beenden Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben