# JTextField auslesen wie in der Console



## Der Ander Flo (22. August 2014)

Hey,
ich habe folgendes Problem. Ich programmiere ein kleines TextAdventure /Spiel. Das hatte ich zuerst in der der Console. Das wolte ich in eine GUI form mit einen JTextField und jTextArea umlagern. Die ausgabe geht soweit, aber die eingabe will nicht so richtig. Ich habe eine while die zuesrt die Aufgabe gibt, zuerst lesen dan verarbeiten. Das hat bei der Console geklapt das hast es immer auf die eingabe gewartet. Bei den JTextField mit den keylistener wartest es nicht auf die eingabe.

Wie kan ich es machen das die Schleife  wartet bis ich Enter gdrückt habe. Danach sol es den Wert zurück geben damit ich sie danach zu verarbeiten kan? 

Die Gui und der Leser sind in einer Klasse und das die Verarbeitung und die Schleife in einer anderen.

PS: Vielen Dank in Vorraus.


----------



## vfl_freak (22. August 2014)

Moin,

ohne den relevanten Code kaum zu beurteilen, was falsch läuft ....

Gruß
Klaus


----------



## Der Ander Flo (22. August 2014)

hier die Schleife

```
while (!Beenden) {
           
            if (!"".equals(nachricht)) {              
                nachricht = GUI.input();
            }
           
           
            if(befehl.checkBefehl(wörter[0])){
                Beenden = BefehlBearbeiten(wörter);
               
            }
            Pause = story(wörter);
        }
```

und hir die GUI Lese Klasse

```
/*

package gowc;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;


/**
*
* @author Florian
*/
public class GUI implements ActionListener, KeyListener {
    private static JTextField eingabe;
    private static JTextArea ausgabe;
    private static JScrollPane spane;
    private static String inmsg = "";
    private static boolean modus = false;
   
   
     public static void out(String msg){
        ausgabe.append(msg);
        ausgabe.append("\n");
    }

   
   public void gui(){    
        JFrame Frame = new JFrame("GOWC");
        Frame.setSize(400,600);
        Frame.setLocationRelativeTo(null);
        Frame.setDefaultCloseOperation(Frame.EXIT_ON_CLOSE);
        
        Frame.setLayout(new BorderLayout());
               
        ausgabe = new JTextArea();
        ausgabe.setEditable(false);

        Frame.add(ausgabe, BorderLayout.CENTER);
       
       
        eingabe = new JTextField("");
        eingabe.addKeyListener(this);
        Frame.add(eingabe, BorderLayout.PAGE_END);
       
        Frame.setVisible(true);
   }

    @Override
    public void actionPerformed(ActionEvent e) {}

    @Override
    public void keyTyped(KeyEvent e) {}

    @Override
    public void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == 10){
       inmsg = eingabe.getText();
       eingabe.setText("");

    }}

    @Override
    public void keyReleased(KeyEvent e) {}
       
    public static String input(){
        for (int i = 0; i > 1; i++) {
            inmsg = "";
        }
        return inmsg;
       
    }
}
```


----------



## vfl_freak (22. August 2014)

*bahnhof* ??

Was machen die Funktionen, die innerhalb von "while" aufgerufen werden ???
Wo steht denn die while-Schleife ???

BTW: Namen mit Umlauten sind generell schlecht !!!

Gruß
Klaus


----------



## Der Ander Flo (22. August 2014)

Das ist der src ordner da sind alle klassen 
Das mit dne ö werde ich dan noch ändern. 
Mein wesen ist etwas zesteut wie mein code das muss noch geändet werden:-(


----------



## youza (22. August 2014)

Wo wird das Array Woerter befüllt?
Hab soweit alles zum laufen bekommen...
Du musst statt einen KeyListener den ActionListener nehmen und du benötigst keine Schleife mehr da du mit einer Gui arbeitest immer wenn enter gedrückt wird in einem Textfeld wird der angehängte ActionListener ausgelöst jetzt brauchst du nur eine Methode in deiner Spiele Logik welche das eingegebene Wort entgegen nimmt und das funktioniert auch schon


----------



## Der Ander Flo (22. August 2014)

Ok danke ich versuche das mal.


----------



## youza (22. August 2014)

ok läuft alles ich hängs dir als Eclipse Projekt an 

@Edit:
dann will ich des aber auch mal haben wenns fertig ist


----------



## Der Ander Flo (22. August 2014)

ok danke ich screibe dich auf die liste


----------



## youza (26. August 2014)

Hi ich hab mal angefangen eine kleine Oberfläche zu schreiben und den Code noch ein bisschen anzupassen.

Hat mir irgendwie Spaß gemacht  Ich werd noch weitermachen kannst mir ja mal deinen aktuellen Stand geben dann merge ich des ein bisschen wenn des für dich in Ordnung ist.


----------

