Variable Anzahl an Formularfeldern

  • Hallo, ich hätte eine kleine Fragen bzgl. eines meiner Java-Projekte.
    1) Ich möchte ein kleines Hangman-Spiel programmieren. Dazu hab ich folgenden Ablauf:
    a) Wort wird in ein Formularfeld eingegebeb
    b) Länge des Strings wird ausgelesen
    c) Jeder Buchstabe wird in ein char-Array gespeichert.

    Jetzt zu meiner Frage: Ich möchte, je nach Länge des Wortes eine unterschiedliche Anzahl von TextFields haben. Wie erreiche ich das? Duch eine einfache Schleife gehts nicht, da ja sonst z.B. 5 TextFields den gleichen Namen haben :(

  • Jetzt zu meiner Frage: Ich möchte, je nach Länge des Wortes eine unterschiedliche Anzahl von TextFields haben. Wie erreiche ich das? Duch eine einfache Schleife gehts nicht, da ja sonst z.B. 5 TextFields den gleichen Namen haben :(

    Verwende ein Array von TextFields.

  • Danke für die schnelle Antwort. Wie sieht denn dann der Syntax aus?


    TextField[] Test;
    Test[0] = new TextField("",20);
    Test[1] = new TextField("",20);
    Test[2] = new TextField("",20);


    bzw.

    TextField[] Test;
    Test[] = new TextField("",20);
    Test[] = new TextField("",20);
    Test[] = new TextField("",20);

    Bei beiden Bsp. kommt folgende Fehlermeldung:
    MainPanel.java:21:16: ']' expected Test[0] = new TextField("",20);
    bzw.
    MainPanel.java:21:19: <identifier> expected Test[] = new TextField("",20);

  • Danke für die schnelle Antwort. Wie sieht denn dann der Syntax aus?

    Du musst das Array initialisieren, bevor zu Schreibzugriffe auf dessen Elemente ausführen kannst:

    Code
    TextField[] Test = new TextField[3];
    Test[0] = new TextField("",20);
    Test[1] = new TextField("",20);
    Test[2] = new TextField("",20);

    Das Fehlen dieser Initialisierung führt allerdings nicht zu dem von dir beschriebenen Fehler, sondern zu "variable Test might not have been initialized".

  • Hm, das hab ich auch schon probiert. Selbst wenn ich deinen Code in mein Programm einfüge, kommen folgende Fehler in allen Zeilen wo ein "Text[x]" steht:

    MainPanel.java:21:6: ']' expected
    Test[0] = new TextField("",20);
    ^
    MainPanel.java:21:15: invalid method declaration; return type required
    Test[0] = new TextField("",20);


    Ich kopier mal den restlichen Quelltext hier rein, vll. liegt das Problem ja ganz woanders...


  • Hm, das hab ich auch schon probiert. Selbst wenn ich deinen Code in mein Programm einfüge, kommen folgende Fehler in allen Zeilen wo ein "Text[x]" steht:

    Schreib die Zeilen

    Code
    Test[0] = new TextField();
      Test[1] = new TextField();
      Test[2] = new TextField();

    in den Konstruktor.

    importier mal javax.swing.*;

    Caps333 verwendet AWT (TextField und nicht JTextField), und java.awt.* wird importiert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!