Java String programmierung

Hallo

Ich habe hier folgenden Code schon mal hinbekommen

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CSwing_Beispiel extends JFrame {
JButton m_hänsel, m_und, m_gretel;

class CMeinActionLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
int i;

m_hänsel.setText(„verirrrrrrrrten“);
m_und.setText(„sich“);
m_gretel.setText(„im Wald“);
}
}

CSwing_Beispiel(String titel) {
super(titel);

m_hänsel = new JButton(„Hänsel“);
m_und = new JButton(„und“);
m_gretel = new JButton(„Gretel“);

setLayout(new FlowLayout());

add(m_hänsel);
add(m_und);
add(m_gretel);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

m_hänsel.addActionListener(new CMeinActionLauscher());
m_und.addActionListener(new CMeinActionLauscher());
m_gretel.addActionListener(new CMeinActionLauscher());
}

public static void main(String[] args) {
CSwing_Beispiel fenster = new CSwing_Beispiel(„Swing“);
fenster.pack();
fenster.setSize(300,100);
fenster.setVisible(true);
}
}

Wie schaffe ich jetzt dass ich

  1. wieder den ursprung wert zurück bekomme

Hänsel wird zu verirrrrrten wenn ich drauf klicke und ich möchte wenn ich auf verirrrrrten drauf klicke wieder hänsel bekommen

  1. Wenn ich auf Hänsel klicke verändern sich Gretel und UND auch … wie schaffe ich es dass sich nur das verändert worauf ich klicke.

Könnt ihr mir das Programm mit Kommantaren programmieren

Vielen Dank

Hi

Aufgabe 1)

public class CSwing_Beispiel extends JFrame {

JButton m_hänsel, m_und, m_gretel;

class CMeinActionLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
int i; // Hier wird eine Integer-Variable erstellt,
// die absolut sinnfrei ist

// Wir testen, ob im ersten Button „Hänsel“ oder
// „verirrrrrrrrten“ steht und schreiben jeweils
// das benötigte rein

// also: falls der Text „Hänsel“ ist…
if (m_hänsel.getText().equals(Hänsel)) {
// (equals wird zum vergleichen benutzt)
// … dann werden die Texte geändert
m_hänsel.setText(„verirrrrrrrrten“);
m_und.setText(„sich“);
m_gretel.setText(„im Wald“);
}
// an sonsten (also wenn nicht „Hänsel“ drin steht)…
else {
// … wird der andere Text rein geschrieben
m_hänsel.setText(„Hänsel“);
m_und.setText(„und“);
m_gretel.setText(„Gretel“);
}
// das war’s schon
}
}
// der restliche Quelltext bleibt gleich
}

ganz einfach, oder :wink:

Aufgabe 2)
Hier soll für jeden Button ein eigenes Ereignis stattfinden, also brauchst du für jeden Button auch einen eigenen ActionListener

public class CSwing_Beispiel extends JFrame {

JButton m_hänsel, m_und, m_gretel;

class CMeinActionLauscher1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
// Der Listener für den Hänsel-Button
m_hänsel.setText(„verirrrrrrrrten“);
}
}

class CMeinActionLauscher2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
// Der Listener für den und-Button
m_und.setText(„sich“);
}
}

class CMeinActionLauscher3 implements ActionListener {
public void actionPerformed(ActionEvent e) {
// Der Listener für den Gretel-Button
m_gretel.setText(„im Wald“);
}
}

CSwing_Beispiel(String titel) {

// […]

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

// Jeder Button muss jetzt nur noch den richtigen Listener bekommen
m_hänsel.addActionListener(new CMeinActionLauscher1());
m_und.addActionListener(new CMeinActionLauscher2());
m_gretel.addActionListener(new CMeinActionLauscher3());
}
// […]
}

Gruß, Keks

Vielen Dank Kecks,

Die IF Abfrage funktioniert allerdings nicht, der Rest geht.

Wenn ich das Programm ausführe kommen folgende Fehler Meldungen

Z:.desktop>C:\Programme\Java\jdk1.6.0_21\bin\javac CSwing_Beispiel.java
CSwing_Beispiel.java:50: cannot find symbol
symbol : variable Hõnsel
location: class CSwing_Beispiel
if (m_hõnsel.getText().equals(Hõnsel)) {
^
CSwing_Beispiel.java:59: cannot find symbol
symbol : variable und
location: class CSwing_Beispiel
if (m_und.getText().equals(und)) {
^
CSwing_Beispiel.java:69: cannot find symbol
symbol : variable Gretel
location: class CSwing_Beispiel
if (m_gretel.getText().equals(Gretel)) {

Könntest du da nochmal drüber schauen.

Vielen Dank

Hallo,

Z:.desktop>C:\Programme\Java\jdk1.6.0_21\bin\javac
CSwing_Beispiel.java
CSwing_Beispiel.java:50: cannot find symbol
symbol : variable Hõnsel
location: class CSwing_Beispiel
if (m_hõnsel.getText().equals(Hõnsel)) {

Das 2. Hänsel war als String gedacht, also mit Anführungszeichen

if(m\_hänsel.getText().equals("Hänsel"))

Gruß
Heavy

Ich bin schon weiter gekommen nur dieser toggle will nicht funktionieren. Warum nicht ?

public class CSwing_Beispiel extends JFrame {

JButton m_hänsel, m_und, m_gretel;

// Für Jeden Button ein Action Listener erstellt …

class CMeinActionLauscher1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_hänsel.setText(„verirrrrrrrrten“);
}
}

class CMeinActionLauscher2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_und.setText(„sich“);
}
}

class CMeinActionLauscher3 implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_gretel.setText(„im Wald“);
}
}

CSwing_Beispiel(String titel) {

m_hänsel = new JButton(„Hänsel“);
m_und = new JButton(„und“);
m_gretel = new JButton(„Gretel“);

setLayout(new FlowLayout());

add(m_hänsel);
add(m_und);
add(m_gretel);

// Per If-Abfrage versucht den toggle zu erstellen …

if (m_hänsel.getText().equals(„Hänsel“)) {
m_hänsel.setText(„verirrrrrrrrten“);
m_und.setText(„sich“);
m_gretel.setText(„im Wald“);
}
else {
m_hänsel.setText(„Hänsel“);
m_und.setText(„und“);
m_gretel.setText(„Gretel“);
}

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

m_hänsel.addActionListener(new CMeinActionLauscher1());
m_und.addActionListener(new CMeinActionLauscher2());
m_gretel.addActionListener(new CMeinActionLauscher3());
}

public static void main(String[] args) {
CSwing_Beispiel fenster = new CSwing_Beispiel(„Swing“);
fenster.pack();
fenster.setSize(300,100);
fenster.setVisible(true);
}
}

Ich bin schon weiter gekommen nur dieser toggle will nicht
funktionieren. Warum nicht ?

Wahrscheinlich stell ich mich grad blöd an, aber ich verstehe deine Frage nicht…
Ach ja, bitte schreibe Quelltext das nächste Mal in prehtml Tags, dann kann man ihn auch einigermaße lesen :wink:

Gruß, Keks

Nein erstmal vielen Dank dass du dir Zeit genommen hast für meine Aufgabe.

Mein Problem ist ich Möchte das aus Hänsel —> verirrrrten, und —> sich, Gretel —> Wald wird.

Und wenn ich dann wieder auf Wald -----> Gretel, etc, etc wird (toggle)

Also die 2 Lösungen in eine verbinde.

Ich glaub ich hab den Lösungansatz schon ich muss einfach die jeweilige IF-Abfrage in den jeweiligen ActionListener reinschreiben

Hi, du willst, dass beim Klick auf einen Butten alle geändert werden?
Dann nimm den ActionListener aus der ersten Aufgabe und füg ihn jedem deiner 3 Buttons hinzu.
m_hänsel.addActionListener(new CMeinActionLauscher());
m_und.addActionListener(new CMeinActionLauscher());
m_gretel.addActionListener(new CMeinActionLauscher());
Schon fertig :wink:

Gruß, Keks

Vielen Danke !!!