Hallo!
Ich sitze gerade vor einer Programmieraufgabe und habe da ein Problem.
Es soll ein Programm erstellt werden, in dem ein eingegebener String in Buchstaben, Zahlen und sonstige Zeichen zerlegt wird.
Bisher habe ich folgenden Quellcode geschrieben:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Aufgabe4 extends Frame
{
//Objekte
TextField EingabeText,BuchstabeAusgabe,ZahlenAusgabe,SonstigeAusgabe;
Label EingabeLabel,Buchstaben,Zahlen,Sonstiges;
Button Ja,Nein;
//Variablen
String text;
public Aufgabe4() //Konstructor
{
setTitle(„Aufgabe 4“);
//Window Listener
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}
});
//Layout festlegen
setLayout( new GridLayout(10,1,10,10));
Label EingabeLabel = new Label(„Eingabe des Strings“);
add(EingabeLabel);
TextField EingabeText = new TextField();
add(EingabeText);
Label Buchstaben = new Label(„Ausgabe der Buchstaben“);
add(Buchstaben);
TextField BuchstabenAusgabe = new TextField();
add(BuchstabenAusgabe);
Label Zahlen = new Label(„Ausgabe der Zahlen“);
add(Zahlen);
TextField ZahlenAusgabe = new TextField();
add(ZahlenAusgabe);
Label Sonstiges = new Label („Sonstige Zeichen“);
add(Sonstiges);
TextField SonstigeAusgabe = new TextField();
add(SonstigeAusgabe);
Label Weiter = new Label(„Weitere Eingabe?“);
add(Weiter);
Button Ja = new Button(„JA“);
add(Ja);
Label Leerfeld = new Label();
add(Leerfeld);
Button Nein = new Button(„Nein/Programmende“);
add(Nein);
setSize(500,300);
setVisible(true);
// Aktionen festlegen
// 1. Texteingabe
EingabeText.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
text = EingabeText.getText();
}
});
// 2. Programmende
Nein.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
//3. Nochmalige Umwandlung
Ja.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Aufgabe4 neu = new Aufgabe4();
}
});
}
public static void main (String[] args)
{
Aufgabe4 neu = new Aufgabe4();
}
}
Die Ereignisbehandlungen zum Programmbeenden und dem nochmaligen Aufruf funktionieren.
Ein Problem habe ich nur bei der Übergabe des Eingabefeldes in die Stringvariable. Laut meinem Lehrbuch („Java-Startup“, Data Becker) sollte das so gehen. Ich krieg da folgende Fehlermeldung von meinem Compiler: C:\Javawork\aufgabe4\aufgabe4.java:57: local variable EingabeText is accessed from within inner class; needs to be declared final
text = EingabeText.getText();
Kann mir jemand sagen, was ich hier falsch mache???
Vielen Dank im voraus für jede Antwort!
Christoph