# Java applet textfeld



## blackstarmaster (22. Mai 2008)

Hi leute, ich habe erst seid einem halben jahr java unterricht. dh ich bin blutiger anfänger. 

In meinem übungsprogramm das ich mache wäre es nützlich ich könnte ein Einkabefeld in das applet einbauen, wo ich die eingabe (normalerweise eine int eingabe) des Benutzers im Programm zb. als variable e weiterverwenden kann.

dh ich möchte eine Möglichkeit eingaben eines benutzers in meinem programm zu verwerten.

da ich anfänger binn, kann ich mitt tipps nicht viel anfangen, da müsste ich schon ein pfannenfertiges progrämmchen mit erklärung haben .. sry 
gruss von blackstarmaster


----------



## L-ectron-X (22. Mai 2008)

Dann muss ich es verschieben...


----------



## blackstarmaster (24. Mai 2008)

import java.applet.*;
import java.awt.*;

public class TextField1 extends Applet {

  public void init(){
    setLayout(new FlowLayout());                       *Für was ist dieses Layout?*


    TextField ta1 = new TextField("Welche Zahl willst du hier eingeben",30);


    add(ta1);


  }}

*nun möchte ich die Zahl die Jemand
  in das Feld eingibt in einem Weiterführenden Programm verwenden!
  dazu könnte man die eingabe vielleicht unter einer Variabel Speichern,
  die danach abrufbar ist.ABER WIE?

  oder gibt es ene einfachere Lösung?*


----------



## L-ectron-X (24. Mai 2008)

Damit das funktioniert, muss du eine private Instanzvariable deklarieren, für das Textfeld anlegen, die du später abfragen kannst.
Den eingegebenen Text kannst du bspw. nach einen Button-Klick auslesen und erhältst du dann so:

```
String text = textfeld.getText();
```


----------



## Blackstarmaster (25. Mai 2008)

wie würde das Programm aussehen wenn ich kenen string, sondern ein int erhalten will?

da funktionniert galuf ich getText()  nicht...


----------



## Blackstarmaster (25. Mai 2008)

dieses 
mein vorschlag von oben mit dem String text = textfeld.getText();
geht nicht, weil init eine void methode ist, doch man kann nicht einfach String anstatt void schreiben.
ich will die info doch weiterverwenden.


ich will bloss ein textfeld, wo ich danach die eingegebene info weiterverarbeiten kann!!!


----------



## L-ectron-X (25. Mai 2008)

Ich habe in diesem Thread mal ein einfaches Applet geschrieben, wo du dir einige Sachen mal angucken kannst.
Z.B. Wie holt man Werte aus einem Textfeld ab? Was macht man, wenn die Eingabe aus Zahlen besteht?
Wie kann man eine einfache Ausgabe realisieren, etc. pp.

Wenn du einen Wert aus einer Methode zurück geben willst, schreibst du eine passende Methode, die das kann:
Bsp.:

```
public String addition(String a, String b) {
   String result = null;
   try {
      result = String.valueOf(Integer.parseInt(a) + Integer.parseInt(b));
   }
   catch(NumberFormatException ex) {
      System.out.println("Bitte nur ganze Zahlen eingeben!");
   }
   return result;
}
```


----------



## blackstarmaster (25. Mai 2008)

danke vielmal....


----------



## blackstarmaster (26. Mai 2008)

hi ich hab vorheriges wissen nun angewandt:


```
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Test extends Applet {

   private TextField tf_a;

   public void init () {
      setLayout (new FlowLayout());
      tf_a = new TextField("was willst du eingeben",20);
      add(tf_a);
   }

   public String eingabe (String k) {
        String a = tf_a.getText();
        return a;
   }

   public void paint( Graphics g ) {
      String k="";
      String w = eingabe(k);
      g.drawString( "folgendes hast du eingegeben: "+w, 100, 100 );
      repaint();
  }
}
```


doch wieso Frimmert der draw string? wegen dem repaint? wie löst man das Problem unkompliziert?


----------



## L-ectron-X (26. Mai 2008)

Eigentlich nicht. Aber du erzeugst damit eine Endlosschleife. repaint() ruft schließlich auch paint() auf...
repaint() gehört daher nie in die paint()-Methode.

Zur Ausgabe des Ergebnisses kannst du genauso gut ein Label verwenden.


----------

