Text vom Label ändern

Hallo,
meine erste Frage hier ist folgende:
Wie kann ich ein Label in einer Class mit einem Zahlenwert "belegen".
Hier ist meine Code:
Java:
import java.awt.*;
import java.awt.event.*;
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 02.05.2011
  * @author
  */

public class quadrat extends Frame {
  // Anfang Attribute
  private Button button1 = new Button();
  private Button button2 = new Button();
  private Button button3 = new Button();
  private Button button4 = new Button();
  private Label label1 = new Label();
  // Ende Attribute

  public quadrat(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { dispose(); }
    });
    int frameWidth = 424;
    int frameHeight = 203;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Panel cp = new Panel(null);
    add(cp);
    // Anfang Komponenten

    button1.setBounds(24, 96, 67, 57);
    button1.setLabel("1");
    button1.setVisible(false);
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button1_ActionPerformed(evt);
      }
    });
    cp.add(button1);
    button2.setBounds(104, 96, 67, 57);
    button2.setLabel("2");
    button2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button2_ActionPerformed(evt);
      }
    });
    cp.add(button2);
    button3.setBounds(184, 96, 67, 57);
    button3.setLabel("3");
    button3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button3_ActionPerformed(evt);
      }
    });
    cp.add(button3);
    button4.setBounds(264, 96, 67, 57);
    button4.setLabel("4");
    button4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button4_ActionPerformed(evt);
      }
    });
    cp.add(button4);
    label1.setBounds(88, 24, 47, 16);
    label1.setText("0");
    label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label1);
       // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void button1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    String speicher;
          speicher= button1.getLabel();
    if (!(button2.isVisible())) {
         button2.setVisible(true);
         button1.setVisible(false);
         button1.setLabel(button2.getLabel() );
         button2.setLabel(speicher);
         quadrat zugzaehler;
    }
  }

  public void button2_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    String speicher;
     speicher=button2.getLabel();
    if (!(button1.isVisible()) ) {
       button1.setVisible(true);
     button2.setVisible(false);
     button2.setLabel( button1.getLabel() );
     button1.setLabel(speicher);
    }
     if (!(button3.isVisible()) ) {
      button3.setVisible(true);
      button2.setVisible(false);
      button2.setLabel(button3.getLabel());
      button3.setLabel(speicher);
     }
  }

  public void button3_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
     String speicher;
     speicher=button3.getLabel();
    if (!(button2.isVisible()) ) {
     button2.setVisible(true);
     button3.setVisible(false);
     button3.setLabel(button2.getLabel());
     button2.setLabel(speicher);
    }
    if (!(button4.isVisible()) ) {
     button4.setVisible(true);
     button3.setVisible(false);
     button4.setLabel(button3.getLabel());
     button3.setLabel(speicher);
    }
  }

  public void button4_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    String speicher;
    speicher=button4.getLabel();
  if (!(button3.isVisible()) ) {
    button3.setVisible(true);
    button4.setVisible(false);
    button4.setLabel(button3.getLabel());
    button3.setLabel(speicher);
   }
  }

  // Ende Methoden

  public static void main(String[] args) {
    new quadrat("quadrat");
  }
  
public class zugzaehler {
  Long zaehler=label1.getText();
   zaehler+=zaehler+1
  label1.setText zaehler;
}
}

In der public class zugzaehler trit beim Compelieren folgender Fehler auf:
Compiliere G:\java\quadrat.java mit Java-Compiler
quadrat.java:151:9: ';' expected
label1.setText zaehler;
^

Wo ist mein Denkfehler??

Rookie
 
Zuletzt bearbeitet:
repaint braucht man nicht bei Label ändern.

sondern : validate();

Mit repaint rufst du die paint() Methode auf mit geänderten daten.!
 
Vielleicht noch als ergänzende Info für meinen knappen Satz:
Die Methode
Code:
setTest(String text)
ruft abschliessend und falls notwendig die Methoden
Code:
revalidate()
und
Code:
repaint()
selbstständig auf.
 
@BlindXantos,

Java:
public class zugzaehler {
  Long zaehler=label1.getText();
   zaehler+=zaehler+1
  label1.setText("zaehler");

}
nach dem abändern der Class nach Deinem Vorschlag ergibt sich beim Compelieren folgender Fehler:

quadrat.java:151:9: ';' expected
label1.setText("zaehler");
^
quadrat.java:151:10: invalid method declaration; return type required
label1.setText("zaehler");
^
quadrat.java:151:18: illegal start of type
label1.setText("zaehler");
^
3 errors

Es ist schon merkwürdig. Wenn die Zaehler-Variable ohne Klammer und Anführungszeichen steht, kommt nur ein Fehler. Trotzdem danke für die Mühe.

Rookie
 
@Marko13;

nach dem Ändern der Class nach Deinem Vorschlag
Java:
public class zugzaehler {
  Long zaehler=label1.getText();
   zaehler+=zaehler+1
  label1.setText("zaehler");
}

kommt nach dem Compelieren folgende Fehlermeldungen:

quadrat.java:151:9: ';' expected
label1.setText("zaehler");
^
quadrat.java:151:10: invalid method declaration; return type required
label1.setText("zaehler");
^
quadrat.java:151:18: illegal start of type
label1.setText("zaehler");
^
3 errors

Trotzdem vielen Dank für die Mühe.

Rookie
 
vielleicht ersetzt du
Java:
 zaehler+=zaehler+1
zu
Java:
 zaehler+=1;
oder
Java:
 zaehler++;

Du hast das ";" vergessen und ich glaube du willst deine zaehler nur um eins zu erhöhen. Mit deiner schreibweiße würdest du den zähler mit 2 multiplizieren und mit 1 addieren.
 
1. Post von Tobiko
2.
Java:
label1.setText(zaehler);

Bei Java kann er passieren, das sich hinter einen kleinen Fehler 100 neue Fehler auftürmen.

Dazu fällt mir auch eine Frage, passend zum Thread ein.
Nimmt .getText() nur einen String, den man in einen int/float/double/long-Wert umändern kann oder kann man dies, wie hier so instanzieren?
 
1. Post von Tobiko
2.
Java:
label1.setText(zaehler);

Bei Java kann er passieren, das sich hinter einen kleinen Fehler 100 neue Fehler auftürmen.

Dazu fällt mir auch eine Frage, passend zum Thread ein.
Nimmt .getText() nur einen String, den man in einen int/float/double/long-Wert umändern kann oder kann man dies, wie hier so instanzieren?

Nein getText liefert einen String. Diesen muss man dann casten.
und setText(Long) gibt es nicht , auch hier muss man casten...

Java:
    String stringZahl = label1.getText();
    Long zaehler = Long.valueOf(stringZahl);
    zaehler++;
    label1.setText(zaehler.toString());
 
Da waren noch einige Fehler in deinem Code...
Habe mal 1 clickCount Methode in deinen Code geschrieben...

Java:
import java.awt.*;
import java.awt.event.*;

/**
 * 
 * Beschreibung
 * 
 * @version 1.0 vom 02.05.2011
 * @author
 */

public class quadrat extends Frame {
	// Anfang Attribute
	private Button button1 = new Button();
	private Button button2 = new Button();
	private Button button3 = new Button();
	private Button button4 = new Button();
	private Label label1 = new Label("0"); // Beim 1. ausführen gleich "0" ins
											// Label setzen

	private Integer clickCount = 0; // Dein neuer counter ein Integer (Der Wertebereich von Integer sollte für einen ClickCounter ausreichen

	// Ende Attribute

	public quadrat(String title) {
		// Frame-Initialisierung
		super(title);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				dispose();
			}
		});
		int frameWidth = 424;
		int frameHeight = 203;
		setSize(frameWidth, frameHeight);
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int x = (d.width - getSize().width) / 2;
		int y = (d.height - getSize().height) / 2;
		setLocation(x, y);
		Panel cp = new Panel(null);
		add(cp);
		// Anfang Komponenten

		button1.setBounds(24, 96, 67, 57);
		button1.setLabel("1");
		button1.setVisible(false);
		button1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				button1_ActionPerformed(evt);
			}
		});
		cp.add(button1);
		button2.setBounds(104, 96, 67, 57);
		button2.setLabel("2");
		button2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				button2_ActionPerformed(evt);
			}
		});
		cp.add(button2);
		button3.setBounds(184, 96, 67, 57);
		button3.setLabel("3");
		button3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				button3_ActionPerformed(evt);
			}
		});
		cp.add(button3);
		button4.setBounds(264, 96, 67, 57);
		button4.setLabel("4");
		button4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				button4_ActionPerformed(evt);
			}
		});
		cp.add(button4);
		label1.setBounds(88, 24, 47, 16);
		label1.setText("0");
		label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
		cp.add(label1);
		// Ende Komponenten

		setResizable(false);
		setVisible(true);
	}

	// Anfang Methoden
	public void button1_ActionPerformed(ActionEvent evt) {
		buttonClicked(); // Die "hochzähl" Methode aufrufen
		// TODO hier Quelltext einfügen
		String speicher;
		speicher = button1.getLabel();
		if (!(button2.isVisible())) {
			button2.setVisible(true);
			button1.setVisible(false);
			button1.setLabel(button2.getLabel());
			button2.setLabel(speicher);
		}
	}

	public void button2_ActionPerformed(ActionEvent evt) {
		buttonClicked();
		// TODO hier Quelltext einfügen
		String speicher;
		speicher = button2.getLabel();
		if (!(button1.isVisible())) {
			button1.setVisible(true);
			button2.setVisible(false);
			button2.setLabel(button1.getLabel());
			button1.setLabel(speicher);
		}
		if (!(button3.isVisible())) {
			button3.setVisible(true);
			button2.setVisible(false);
			button2.setLabel(button3.getLabel());
			button3.setLabel(speicher);
		}
	}

	public void button3_ActionPerformed(ActionEvent evt) {
		buttonClicked();
		// TODO hier Quelltext einfügen
		String speicher;
		speicher = button3.getLabel();
		if (!(button2.isVisible())) {
			button2.setVisible(true);
			button3.setVisible(false);
			button3.setLabel(button2.getLabel());
			button2.setLabel(speicher);
		}
		if (!(button4.isVisible())) {
			button4.setVisible(true);
			button3.setVisible(false);
			button4.setLabel(button3.getLabel());
			button3.setLabel(speicher);
		}
	}

	public void button4_ActionPerformed(ActionEvent evt) {
		buttonClicked();
		// TODO hier Quelltext einfügen
		String speicher;
		speicher = button4.getLabel();
		if (!(button3.isVisible())) {
			button3.setVisible(true);
			button4.setVisible(false);
			button4.setLabel(button3.getLabel());
			button3.setLabel(speicher);
		}
	}

	// Die Hochzählmethode, der count wird um 1 erhöht und der Text im Label
	// geändert.
	public void buttonClicked() {
		clickCount++;
		label1.setText(clickCount.toString());
	}

	// Ende Methoden

	public static void main(String[] args) {
		new quadrat("quadrat");
	}

}


Du kannst nicht "in" deiner Class eine neue "public class" schreiben, und dann noch alles in den class body von dieser schreiben... eine Methode reicht völlig aus.
 
Zuletzt bearbeitet:

Zurück
Oben