Ergebnis 1 bis 7 von 7

Zeitgeber in Java

  1. #1 Zitieren
    Veteranin
    Registriert seit
    Jan 2007
    Ort
    Mittelhessen
    Beiträge
    521
    Hi,
    ich programmiere gerade für das Studium in Java (BlueJ) eine Digitaluhr. Die Uhr soll auch funktionieren, also die Zeit soll weiterlaufen. Wie erreiche ich, dass die Methode

    Code:
    private void anzeigeAktualisieren()
        {
            zeitanzeige = stunden.gibAnzeigewert() + ":"
                          + minuten.gibAnzeigewert() + ":"
                          + sekunden.gibAnzeigewert();
        }
    automatisch ein mal die Sekunde aufgerufen wird?

    Leider hat eine Suche bei Google mir nicht weiter geholfen. Wäre also schön, wenn mir hier jemand weiter helfen könnte.
    Drachen-Snapper ist offline

  2. #2 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.220
    Die Aufgabe hatte ich auch mal gelöst... ich weiß bloß grad nicht mehr genau wie.
    Ich meine da gibts ne Klasse für, such mal in der Java-Klassenbibliothek, ob du da was findest. Ich guck mal ob ich die Quelltext-Dateien von damals noch habe.

    So lange, verschiebe ich dich schonmal zu den Experten ins Forum für Webdesign und Programmierung.
    Lookbehind ist offline

  3. #3 Zitieren
    Veteranin
    Registriert seit
    Jan 2007
    Ort
    Mittelhessen
    Beiträge
    521
    Okay, danke schon mal. Ich suche mal in der Bibliotheken.
    Drachen-Snapper ist offline

  4. #4 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.220
    Pech im Glück, ich hab meine gelösten Aufgaben gefunden... ich komm bloß nicht dran

    Edit:
    Ich hab mich so durch den Quelltext gekämpft, ohne BlueJ. Ich hab das damals so gelöst:

    Code:
        private Timer myGlobalTimer = new Timer();
        
        private final Runnable doUpdateClock = new Runnable() {
            public void run() {
                taktsignalGeben();
            }
        };
        
        private TimerTask updateClockTask = new TimerTask() {
            public void run() {
                EventQueue.invokeLater(doUpdateClock);
            }
        };
    Dazu brauchst du die hier:
    Code:
        import java.util.Timer;
        import java.util.TimerTask;
        import java.awt.EventQueue;
    Lookbehind ist offline Geändert von Lookbehind (19.11.2009 um 19:50 Uhr)

  5. #5 Zitieren
    Veteranin
    Registriert seit
    Jan 2007
    Ort
    Mittelhessen
    Beiträge
    521
    Danke. Ich würde es zwar auch gerne verstehen, aber vielleicht kommts ja in der nächsten Vorlesung...

    Edit: Es funktioniert nicht
    Drachen-Snapper ist offline Geändert von Drachen-Snapper (19.11.2009 um 20:43 Uhr)

  6. #6 Zitieren
    Ritter
    Registriert seit
    Sep 2006
    Beiträge
    1.913
    Na ja, es gibt sicherlich spezialisierte Klassen dafür, aber grundlegend brauchst du halt nen eigenen Thread, den du einmal startest und der das dann macht...

    Code:
      
      Thread runnable = new Thread() {
    	  public void run() {
    		  while(true) {
    			  anzeigeAktualisieren();
    			  try {
    				Thread.sleep(1000);
    			  } catch (InterruptedException e) {
    				e.printStackTrace();
    			  }
    		  }
    	  }	  
      };
      runnable.start();
    Irian ist offline

  7. #7 Zitieren
    Veteranin
    Registriert seit
    Jan 2007
    Ort
    Mittelhessen
    Beiträge
    521
    "Gut", dass wir das alles noch nicht hatten...
    Naja, ich finde jetzt erst mal heraus, ob die Uhr wirklich automatisch weiterlaufen muss oder ob ich das falsch verstanden habe. Wenn ich noch Hilfe brauche, poste ich wieder.
    Drachen-Snapper ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •