Uhrzeit wird nicht aktualisiert

Status
Nicht offen für weitere Antworten.

hawkeye78

Bekanntes Mitglied
Hallo,

ich weiß nicht ob ich hier oder besser im AWT/Swing forum aufgehoben bin. Aber da die Uhrzeit schon nicht korrekt erzeugt wird, denke ich das die Frage doch besser hier gestellt wird.

Um nun auf mein Problem zu sprechen zu kommen, ich würde gerne ein kleine Uhr schreiben, das Erzeugen der Oberfläche und das Aufrufen der Uhrzeit funktioniert auch ohne Probleme. Allerdings habe ich nun das Problem das die Uhrzeit zwar einmal im Objekt erzeugt wird, danach aber die Uhrzeit nicht wieder aktualisiert wird. Ich habe momentan folgenden Quellcode geschrieben:

Code:
import java.util.Date;

public class Modi
{
	public void Uhrzeit(Oberflaeche o2)
	{
		// Definition der Variablen für die Sekunden, Minuten, Stunden
		String sUhrzeit="";
		String sStunde="";
		String sMinute="";
		String sSekunde="";
		int iStunde=0;
		int iMinute=0;
		int iSekunde=0;
		Date Uhrzeit;
		
		while(true)
		{
			Uhrzeit=new Date();
			iStunde=Uhrzeit.getHours();
			iMinute=Uhrzeit.getMinutes();
			iSekunde=Uhrzeit.getSeconds();

			sStunde=iStunde+"";
			
			sMinute=iMinute+"";
			if(iMinute<10)
			{
				sMinute="0"+sMinute;
			}

			sSekunde=iSekunde+"";
			if(iSekunde<10)
			{
				sSekunde="0"+sSekunde;
			}
			
			sUhrzeit=sStunde+" : "+sMinute+" : "+sSekunde;
			
			o2.LZeit.setText(sUhrzeit);
			System.out.println(sUhrzeit);
		}
	}
}

Ich rufe hierbei aus der Klasse Oberflaeche diese Methode bzw. diese Klasse auf und übergebe ihr die gesamte Oberfläche zum aktualisieren des Labels. Es kann ja gut sein das ich ein bisschen Blind bin aber ich sehe momentan leider nicht wo der Fehler ist und wäre daher über einen entsprechenden kleinen Tipp sehr dankbar.
Gruß
Dan
 
B

Beni

Gast
Dazu benötigst du Multithreading. Such mal im Forum
- Es gibt genug davon
- Meine Fernsehsendung fängt in 30 Sekunden an.
 

hawkeye78

Bekanntes Mitglied
Hallo Beni,

erst einmal danke für diese schnelle Antwort, ich habe das schon einmal mit Multithreading umgesetzt aber ich dachte ich könnte das vielleicht weg lassen da ich ja im Prinzip ja nur diesen einen Thread habe, und nicht wechseln muß. Aber dann wünsche ich dir viel spaß beim Fernsehe gucken :).
Gruss
Dan
 

thE_29

Top Contributor
Code:
import javax.swing.JTextField;
import java.awt.Color;
import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
import java.io.Serializable;

public class Uhr implements Serializable
{
  private JTextField jTxt = null;
  private long lSek = 1000;
  private transient Timer tUhr = null;

  /***************************************************************************
   * Konstruktor für die neue Uhr
   * @param txt Textfield zum drauflegen der Uhr
   **************************************************************************/
  public Uhr(JTextField txt)
  {
    jTxt = txt;
  }

  /***************************************************************************
   * Startet die Uhr
   **************************************************************************/
  public void StartUhr()
  {
    tUhr = new Timer();
    tUhr.scheduleAtFixedRate(new TimerTask()
    {
      public void run()
      {
        Date jetzt = new Date();
        /* Ausgabe auf der Standardausgabe */
        SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss");
        TimeZone tm = TimeZone.getTimeZone("CET");
        fmt.setTimeZone(tm);

        String strTime = fmt.format(jetzt);
        jTxt.setText(strTime);
        jTxt.setEditable(false);
        jTxt.setEnabled(false);
        jTxt.setBorder(null);
        jTxt.setFont(new Font("", Font.BOLD, 14));
        jTxt.validate();
      }
    }
    ,0, lSek);
  }

  /***************************************************************************
   * Stoppt die Uhr
   **************************************************************************/
  public void StopUhr()
  {
    if (tUhr != null)
    {
      tUhr.cancel();
    }
  }
}


// Andere Klasse

{
    Uhr uhr = new Uhr(comp);  //Komponente die irgendwo liegt
    uhr.StartUhr();
//Ende
    uhr.StopUhr();
}

Hatte es vorher mit Threads aber da hatte ich Focus probs!
PS.: Imports musst du schauen, sind noch alle von der Threadversion!
 

hawkeye78

Bekanntes Mitglied
hallo,

vielen dank für dein Posting, ich denke das mit den Threads bekomme ich hin, aber ich habe nie so wirklich verstanden wofür ich in diesem Fall ausgerechnet einen Thread benötige?
Es wäre schön wenn mir das noch jemand erklären könnte.
Gruß
Dan
 

Isaac

Bekanntes Mitglied
Code:
while(true) 
      { 
         Uhrzeit=new Date(); 
         iStunde=Uhrzeit.getHours(); 
         iMinute=Uhrzeit.getMinutes(); 
         iSekunde=Uhrzeit.getSeconds(); 

         sStunde=iStunde+""; 
          
         sMinute=iMinute+""; 
         if(iMinute<10) 
         { 
            sMinute="0"+sMinute; 
         } 

         sSekunde=iSekunde+""; 
         if(iSekunde<10) 
         { 
            sSekunde="0"+sSekunde; 
         } 
          
         sUhrzeit=sStunde+" : "+sMinute+" : "+sSekunde; 
          
         o2.LZeit.setText(sUhrzeit); 
         System.out.println(sUhrzeit); 
      }

Weil du damit alles blockierst. Das System steht und macht ein System out nach dem anderen. Zum aktualisieren der anderen Threads kommt das System garnicht mehr wenn du das nicht auch in einem Thread kapselst.
 

thE_29

Top Contributor
wenn du ein Eingabefeld hast und mit Focusgeschichten zu tun haben wirst und nebenbei die Uhr läuft, viel spass damit, weil du das mit Threads nicht hinbekommst ;)

Glaub mir hab mich 1 monat nur rumgeärgert!
 

hawkeye78

Bekanntes Mitglied
noch einmal vielen Dank für die vielen Aufschlußreichen Antworten, vor allem auch für die Erklärungen warum ich die Uhr nun doch mit Threads umsetzen muß. :)
 
R

Roar

Gast
@the: du willst eine Uhr serialisieren? *ugh* :?

@hawkeye:
ich mache mir meine uhr meistens so:

Code:
	private JLabel initClock() {
		final DateFormat clockFormat = new SimpleDateFormat("HH:mm");
		final DateFormat stringFormat = new SimpleDateFormat("EEEE, d. MMMM yyyy");
		final JLabel clock = new JLabel(clockFormat.format(new Date()));
		clock.setToolTipText(stringFormat.format(new Date()));
		final Timer clockTimer = new Timer(100, new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				synchronized(clock.getTreeLock()) {
					clock.setText(clockFormat.format(new Date()));
					clock.setToolTipText(stringFormat.format(new Date()));
				}
			}
		});
		clockTimer.start();
		return clock;
	}
 
G

Gast

Gast
könnten ihr nicht mal ein kompletten Quelltext posten? Mit sowas kann ich als Java Anfänger nix anfangen.

vielen Dank
 

Bert Brenner

Bekanntes Mitglied
War das von Roar nicht schon das rundum sorglos Packet?

P.S.: Feiert der Thread eigtl. nun bals seinen ersten Geburtstag?
 
G

Gast

Gast
dann mach ich irgend was flasch,kannst du da mal bitte den kompletten quelltext reinstellen das tät mich interesieren
 

Bert Brenner

Bekanntes Mitglied
Hoppla, da war ich nicht schnell genug mit dem editieren.

Hier ist er:

Code:
import javax.swing.*;
import java.text.*;
import java.awt.event.*;
import java.util.Date;

public class ClockTest {
  
  private static JLabel initClock() {
    final DateFormat clockFormat = new SimpleDateFormat("HH:mm:ss");
    final DateFormat stringFormat = new SimpleDateFormat("EEEE, d. MMMM yyyy");
    final JLabel clock = new JLabel(clockFormat.format(new Date()));
    clock.setToolTipText(stringFormat.format(new Date()));
    final Timer clockTimer = new Timer(100, new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        synchronized(clock.getTreeLock()) {
          clock.setText(clockFormat.format(new Date()));
          clock.setToolTipText(stringFormat.format(new Date()));
        }
      }
    });
     clockTimer.start();
     return clock;
   } 
   
  public static void main(String[] args) {
    JFrame clocktest = new JFrame("ClockTest");
    clocktest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    clocktest.getContentPane().add(initClock());
    clocktest.setSize(150,50);
    clocktest.setVisible(true);
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
S Uhrzeit Rechnung Java Basics - Anfänger-Themen 8
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
F Zeitspanne bis zur nächsten Uhrzeit Java Basics - Anfänger-Themen 7
OlafHD Java Uhrzeit aktualisiert sich nicht Java Basics - Anfänger-Themen 2
A veränderliche Uhrzeit einmalig speichern Java Basics - Anfänger-Themen 3
F Thread um Uhrzeit ausführen Java Basics - Anfänger-Themen 5
I Java Uhrzeit Java Basics - Anfänger-Themen 2
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
H Erste Schritte Sekunden in Uhrzeit Java Basics - Anfänger-Themen 7
H Erste Schritte Aktuelle Uhrzeit auslesen Java Basics - Anfänger-Themen 64
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
D currentTimeMillis Uhrzeit Java Basics - Anfänger-Themen 8
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
Blindxantos Datentypen Uhrzeit in einem Attribut speichern Java Basics - Anfänger-Themen 3
G Uhrzeit als String in Integer (HH:MM:SS) Java Basics - Anfänger-Themen 5
B Von Uhrzeit 5 min abziehen Java Basics - Anfänger-Themen 5
B Uhrzeit vom Benutzer eingeben lassen. Java Basics - Anfänger-Themen 5
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
S Millisekunden in Datum/Uhrzeit wandeln Java Basics - Anfänger-Themen 11
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
P double in Uhrzeit umwandeln Java Basics - Anfänger-Themen 10
D Meldung zu bestimmter Uhrzeit Java Basics - Anfänger-Themen 9
F Uhrzeit von Webseite Java Basics - Anfänger-Themen 7
K String.matches Uhrzeit Java Basics - Anfänger-Themen 2
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
G Date von heute mit Uhrzeit erzeugen Java Basics - Anfänger-Themen 9
R Uhrzeit in JFrame anzeigen Java Basics - Anfänger-Themen 12
B XML? Für Uhrzeit und Datum für mein HP? Java Basics - Anfänger-Themen 6
L Dateiname mit Uhrzeit Java Basics - Anfänger-Themen 26
A Uhrzeit und Datum Java Basics - Anfänger-Themen 10
J uhrzeit programmieren Java Basics - Anfänger-Themen 5
C Anzahl der Sekunden aus Uhrzeit extrahieren Java Basics - Anfänger-Themen 6
P Uhrzeit für die Klasse Minute umwandeln. Java Basics - Anfänger-Themen 3
G Datum / Uhrzeit? Java Basics - Anfänger-Themen 3
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G problem mit uhrzeit Java Basics - Anfänger-Themen 8
D Probleme mit dem Datum / Uhrzeit Java Basics - Anfänger-Themen 3
T Uhrzeit und Zeitzone? Java Basics - Anfänger-Themen 3
C Uhrzeit auslesen Java Basics - Anfänger-Themen 6
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
O uhrzeit mit einander vergleichen Java Basics - Anfänger-Themen 10
G Datum und Uhrzeit in einem String suchen und ausgeben Java Basics - Anfänger-Themen 2
M Uhrzeit Variable aus TimeTask in jTextField anzeigen Java Basics - Anfänger-Themen 4
P JOptionPane bei bestimmter Uhrzeit anzeigen Java Basics - Anfänger-Themen 2
T Event zu bestimmter Uhrzeit auslösen ? Java Basics - Anfänger-Themen 5
G Auf eine Uhrzeit xx Minuten addieren u. mit Akt. Zeit vergl. Java Basics - Anfänger-Themen 5
V Uhrzeit Java Basics - Anfänger-Themen 8
K Datum und Uhrzeit erfragen Java Basics - Anfänger-Themen 3
G Datum und Uhrzeit in Sekunden konvertiern Java Basics - Anfänger-Themen 4
C aus string-file uhrzeit auslesen?? Java Basics - Anfänger-Themen 4
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben