Anfänger Frage GregorianCalendar

mashine-obf

Mitglied

hallo wenn jemand von euch auf anhieb die aufgabe weiß und auch lust dazu hat würde ich mich freuen wenn er mir dabei etwas helfen kann :​

In einem Fenster soll das aktuelle Datum mit Uhrzeit im Sekundentakt in einer Label-Komponente angezeigt werden. Durch Betätigen eines Knopfes soll die Anzeige gestoppt und wieder gestartetwerden können. Tipp: Nutzen Sie einen Thread, der die aktuelle Zeit ermittelt und sleep() aufruft.​
Verwenden Sie sowohl einmal eine innere nicht-anonyme als auch einmal eine anonyme Klasse.​

vielen dank im vorraus​
 
bin jetzt erstmal soweit gekommen aber finde diesen blöden fehler nicht kann mir da mal bitte einer weiterhelfen? bitte

Code:
 package gui;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.text.*;
/**
 * @author marco
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Aufgabe1 extends JFrame {
 private JButton _btn = null;
 private JLabel _lbl = null;
 private boolean _btnStopp = false;
 
 public Aufgabe1(){
  Container contentPane=getContentPane ();
  contentPane.setLayout(new FlowLayout());
  _btn = new JButton("stopp");
  _btn.addActionListener(
	new ActionListener()/*WARUM*/{
	 public void actionperformed(ActionEvent e);
	 {
	  if(_btnStopp){
	   _btnStopp=false;
	   _btn.setText("Stopp");
	  }
	  else{
	   _btnStopp=true;
	   _btn.setText("Weiter");
	  }
	 }
	});
  _lbl=new JLabel();
  updateLabel (new Date());
  contentPane.add(_btn);
  setTitle("Uhrzeit");
  pack();
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  new Aufgabe1Thread().start();
 }
 private void updateLabel(Date date){
  if(!_btnStopp)
   _lbl.setText(new SimpleDateFormat("HH:mm:ss").format(date));
 }
 private class Aufgabe1Thread extends Thread{
  public void run(){
   try{
	for(;;){
	 sleep(1000);
	 updateLabel(new Date());
	}
   }catch (InterruptedException e){}
  }
 }
 public static void main (String [] args){
  new Aufgabe1();
 }
}
 
mashine-obf hat gesagt.:
bin jetzt erstmal soweit gekommen aber finde diesen blöden fehler nicht kann mir da mal bitte einer weiterhelfen? bitte

Du hast ein paar Flüchtigkeitsfehler eingebaut:
- Es fehlten imports
- die Schreibweise der actionPerformed war nicht korrekt bzgl. Groß-Kleinschreibung
- am Ende der Zeile public void actionPerformed( ActionEvent e ) war ein Semikolon zu viel
- Du hast vergessen, das Label dem Layout resp. der contentPane hinzuzufügen

Ein einfacher wie effektiver Tip:
Benutze eine IDE wie Eclipse. Da werden Dir nämlich solche Fehler direkt angekreidet und der Compiler streikt dann.

Code:
/*
 * Created on 09.02.2005
 * 
 */
package threads;

import java.awt.*;
import java.awt.event.ActionEvent; // added
import java.awt.event.ActionListener; // added
import javax.swing.*;
import java.util.*;
import java.text.*;

/**
 * @author marco
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class Aufgabe1 extends JFrame
{
  private JButton _btn      = null;
  private JLabel  _lbl      = null;
  private boolean _btnStopp = false;

  public Aufgabe1()
  {
    Container contentPane = getContentPane();
    contentPane.setLayout( new FlowLayout() );
    _btn = new JButton( "stopp" );
    _btn.addActionListener( new ActionListener()/* WARUM */
      {
        public void actionPerformed( ActionEvent e ) // ';' removed
        {
          if ( _btnStopp )
          {
            _btnStopp = false;
            _btn.setText( "Stopp" );
          }
          else
          {
            _btnStopp = true;
            _btn.setText( "Weiter" );
          }
        }
      } );
    _lbl = new JLabel();
    updateLabel( new Date() );
    contentPane.add( _btn );
    contentPane.add(_lbl ); // added
    setTitle( "Uhrzeit" );
    pack();
    setVisible( true );
    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    new Aufgabe1Thread().start();
  }

  private void updateLabel( Date date )
  {
    if ( !_btnStopp )
      _lbl.setText( new SimpleDateFormat( "HH:mm:ss" ).format( date ) );
  }

  private class Aufgabe1Thread extends Thread
  {
    public void run()
    {
      try
      {
        for ( ;; )
        {
          sleep( 1000 );
          updateLabel( new Date() );
        }
      }
      catch ( InterruptedException e )
      {
      }
    }
  }

  public static void main( String[] args )
  {
    new Aufgabe1();
  }
}
 
Zuletzt bearbeitet:
Zurück