# Eingabe von JTextField verwenden



## blumenpeter (25. Jan 2010)

Hi, ich brauche nochmal eure Hilfe.

und zwar möchte ich es so machen, dass man sich "anmelden" soll (also erstmal ganz einfach anmelden ohne schnickschnack).

man wird im JTextArea aufgefordert, seinen Namen unten in das JTextField zu schreiben, wenn man dies macht weiß ich nicht, wie ich jetzt den Text übernehme(evtl. in eine variable). Muss ich evtl. einen weiteren Button einbauen, der dann per "klick" die eingabe nimmt und das feld leer macht?

Außerdem wird mir oben ein fehler makiert, den ich nicht lösen kann.


```
package gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Menu implements ActionListener{ //---------------

    JFrame frame1;
    JTextArea text;
    JPanel panel;
    JPanel panel2;
    JButton b1;
    JButton b2;
    JButton b3;
    JButton b4;
    JButton b5;
    JButton b6;
    JScrollPane scroller;
    JTextField tf1;

    int test;
    String addi;

    
    public void los(){
        
          frame1 = new JFrame();
          frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame1.setBackground(Color.WHITE);
          panel = new JPanel();
          panel2 = new JPanel();
          panel.setBackground(Color.WHITE);
          panel2.setBackground(Color.WHITE);
          b1 = new JButton("   1  ");
          b1.addActionListener(this);
          b2 = new JButton("   2  ");
          b2.addActionListener(this);
          b3 = new JButton("   3  ");
          b3.addActionListener(this);
          b4 = new JButton("   4  ");
          b4.addActionListener(this);
          b5 = new JButton("  Ja ");
          b5.addActionListener(this);
          b6 = new JButton("Nein");
          b6.addActionListener(this);
          panel.add(b1);
          panel.add(b2);
          panel.add(b3);
          panel.add(b4);
          panel.add(b5);
          panel.add(b6);
          text = new JTextArea(10,20);
          text.setLineWrap(true);
          tf1 = new JTextField();
          tf1.setText("Hier eingabe Möglich!");
          tf1.selectAll();
          tf1.addActionListener(this);
          scroller = new JScrollPane(text);
          scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
          scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
          panel2.add(scroller);
          panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
          frame1.getContentPane().add(BorderLayout.WEST, panel);
          frame1.getContentPane().add(BorderLayout.EAST, panel2);
          frame1.getContentPane().add(BorderLayout.SOUTH, tf1);
          frame1.setSize(350, 300);
          frame1.setVisible(true);
          
          text.append("Bitte Loggen Sie sich zunächst ein! \n");

          /* Hie soll mansich einloggen*/

    }

    public void actionPerformed(ActionEvent ev){
        try{
        if(ev.getSource()== b1){
            text.append("Sie haben \"1\" gewählt, sind Sie sicher? \n");
            test=1;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }

        try{
        if(ev.getSource()== b2){
            text.append("Sie haben \"2\" gewählt, sind Sie sicher? \n");
            test=2;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }

        try{
        if(ev.getSource()== b3){
            text.append("Sie haben \"3\" gewählt, sind Sie sicher? \n");
            test=3;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }

        try{
        if(ev.getSource()== b4){
            text.append("Sie haben \"4\" gewählt, sind Sie sicher? \n");
            test=4;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }

        try{
        if(ev.getSource()== b5){
            text.append("JA \n");
            test=10;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }

        try{
        if(ev.getSource()== b6){
            text.append("NEIN \n");
            test=20;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n");
        }
        }

    }
```

Der Rest funktioniert eigentlich 
gruß


----------



## SlaterB (25. Jan 2010)

Aktionen müssen definiert starten, irgendein User-Ereignis muss schon kommen,
entweder der User klickt einen Button oder auch Enter im Textfeld, 
da kannst du nämlich auch einen ActionListener adden, der genau bei Enter anspringt

> Außerdem wird mir oben ein fehler makiert, den ich nicht lösen kann.

welcher?


----------



## Gast2 (25. Jan 2010)

blumenpeter hat gesagt.:


> Hi, ich brauche nochmal eure Hilfe.
> 
> und zwar möchte ich es so machen, dass man sich "anmelden" soll (also erstmal ganz einfach anmelden ohne schnickschnack).
> 
> ...


 Du solltest dein Textfeld auch irgendwo adden...
Übrigens es gibt auch ein JPasswordField


----------



## blumenpeter (25. Jan 2010)

"class Menu is public, should be declared in a file named Menu.java"

das sagt mir leider nichts...

-----------------------

[Java]
tf1.addActionListener(this);[/Java]

tf1 ist ja mein JTextField, aber wie kann ich ihm ja die Aktion "ENTER" übergeben?
Durch das ".add"ist er ja nur registriert, oder?


---
EDIT:
Okay, so langsam verstehe ich das ganze mit den ActionListener.

Gibt es ne Möglichkeit das "Password-Fenster" getrennt von dem ganzen zu öffnen? Also als eine Art Pop-Up ?


----------



## ARadauer (25. Jan 2010)

> "class Menu is public, should be declared in a file named Menu.java"
> 
> das sagt mir leider nichts...


das ist nicht dein Ernst oder?


----------



## blumenpeter (25. Jan 2010)

ARadauer hat gesagt.:


> das ist nicht dein Ernst oder?



schon auf "final" gesetzt



EDIT
Okay, so langsam verstehe ich das ganze mit den ActionListener.

Gibt es ne Möglichkeit das "Password-Fenster" getrennt von dem ganzen zu öffnen? Also als eine Art Pop-Up ? 

Und ich finde einfach nichts wo steht, wie ich jetzt die Eingabe ausm TextField in eine Variable Packen kann...


----------



## Meru (25. Jan 2010)

```
JTextField field = new JTextField();
field.addActionListener(this);  // wir geben etwas in das TextField ein und drücken danach die Taste ENTER

//....

public void actionPerformed(ActionEvent e){
  if (e.getSource() == field){
    String text = field.getText();

    // da ich nun meinen Namen etc habe, kann ich etwas tolles machen
    // ...
  }
}
```


----------



## blumenpeter (25. Jan 2010)

ah, super!
Danke 

genau das hat mir gefehlt


----------



## ARadauer (25. Jan 2010)

blumenpeter hat gesagt.:


> schon auf "final" gesetzt





> should be declared in a file named Menu.java


´
ich würde eher die Datei einfach Menu.java nennen...


----------



## blumenpeter (25. Jan 2010)

ah okay ... jetzt raffe ich es!
ich hatte den Fehler net verstanden, da die datei ja menu.java hieß, aber hatte nicht auf die Groß- und Kleinschreibung geachtet.... final hilft bei sowas ja immer 

mal ne andere Frage, da ich ja nicht das Forum mit Topics flüten will:

Und zwar habe ich ja die Methode "los()", welche die GUI erbaut.
Wenn ich nun etwas im TextField eingebe, wird die Methode unterbrochen und es wird der Teil (Zeile 159)ausgeführt, aber leider springt er mir nicht zurück auf Zeile 74, sodass die Methode "los()" beendet werden kann. Gibts da ne Möglichkeit wieder zurück zu gehen=?


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

final class Menu implements ActionListener{

    JFrame frame1;
    JTextArea text;
    JPanel panel;
    JPanel panel2;
    JButton b1;
    JButton b2;
    JButton b3;
    JButton b4;
    JButton b5;
    JButton b6;
    JScrollPane scroller;
    JTextField tf1;

    int test;
    String addi;
    String c;
    String cp;

    
    public void los(){
        
        
          frame1 = new JFrame();
          frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame1.setBackground(Color.WHITE);
          panel = new JPanel();
          panel2 = new JPanel();
          panel.setBackground(Color.WHITE);
          panel2.setBackground(Color.WHITE);
          b1 = new JButton("   1  ");
          b1.addActionListener(this);
          b2 = new JButton("   2  ");
          b2.addActionListener(this);
          b3 = new JButton("   3  ");
          b3.addActionListener(this);
          b4 = new JButton("   4  ");
          b4.addActionListener(this);
          b5 = new JButton("  Ja ");
          b5.addActionListener(this);
          b6 = new JButton("Nein");
          b6.addActionListener(this);
          panel.add(b1);
          panel.add(b2);
          panel.add(b3);
          panel.add(b4);
          panel.add(b5);
          panel.add(b6);
          text = new JTextArea(10,20);
          text.setLineWrap(true);
          tf1 = new JTextField(c);
          tf1.setText("Hier eingabe Möglich!");
          tf1.selectAll();
          tf1.addActionListener(this);
          scroller = new JScrollPane(text);
          scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
          scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
          panel2.add(scroller);
          panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
          frame1.getContentPane().add(BorderLayout.WEST, panel);
          frame1.getContentPane().add(BorderLayout.EAST, panel2);
          frame1.getContentPane().add(BorderLayout.SOUTH, tf1);
          frame1.setSize(350, 300);
          frame1.setVisible(true);
          
          text.append("Bitte Loggen Sie sich zunächst ein! \n");

          if(c.equals("Administrator")){
                
                text.append("Guten Tag Admin, geben Sie Ihr Kennwort ein!");

                if(cp.equals("1793qwert")){

                    text.append("LogIn ERFOLGREICH! ## ! ##!");
                    weiterGehts();
                }
                else{
                    text.append("FALSCHES KENNWORT");
                    los();
                }
          }
          else{
              text.append("FALSCHER benutzername");
                    los();
          }
    }

    public void weiterGehts(){
    System.out.println("WEITERG GEHTS");
    }

    public void actionPerformed(ActionEvent ev){
        try{
        if(ev.getSource()== b1){
            text.append("Sie haben \"1\" gewählt, sind Sie sicher? \n");
            test=1;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" +e);
        }

        try{
        if(ev.getSource()== b2){
            text.append("Sie haben \"2\" gewählt, sind Sie sicher? \n");
            test=2;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" +e);
        }

        try{
        if(ev.getSource()== b3){
            text.append("Sie haben \"3\" gewählt, sind Sie sicher? \n");
            test=3;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" +e);
        }

        try{
        if(ev.getSource()== b4){
            text.append("Sie haben \"4\" gewählt, sind Sie sicher? \n");
            test=4;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" +e);
        }

        try{
        if(ev.getSource()== b5){
            text.append("JA \n");
            test=10;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" +e);
        }

        try{
        if(ev.getSource()== b6){
            text.append("NEIN \n");
            test=20;
        }
        }
        catch(Exception e){
            text.append("Fehler im Code!\n" + e);
        }

        if(ev.getSource()== tf1){
            
            test=1;
            System.out.println(tf1.getText());
            c = tf1.getText();

        }

        }

    }
```


----------



## Meru (25. Jan 2010)

Diese Möglichkeit gibt es nicht.

Ich würde das in folgender Art und Weise lösen:


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

final class Menu implements ActionListener {

	JFrame		frame1;
	JTextArea	text;
	JPanel		panel,panel2;
	JButton		b1,b2,b3,b4,b5,b6;
	JScrollPane	scroller;
	JTextField	tf1;

	int			test;
	String		addi, c, cp;

	public void los() {

		frame1 = new JFrame();
		frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame1.setBackground(Color.WHITE);
		panel = new JPanel();
		panel2 = new JPanel();
		panel.setBackground(Color.WHITE);
		panel2.setBackground(Color.WHITE);
		b1 = new JButton("   1  ");
		b1.addActionListener(this);
		b2 = new JButton("   2  ");
		b2.addActionListener(this);
		b3 = new JButton("   3  ");
		b3.addActionListener(this);
		b4 = new JButton("   4  ");
		b4.addActionListener(this);
		b5 = new JButton("  Ja ");
		b5.addActionListener(this);
		b6 = new JButton("Nein");
		b6.addActionListener(this);
		panel.add(b1);
		panel.add(b2);
		panel.add(b3);
		panel.add(b4);
		panel.add(b5);
		panel.add(b6);
		text = new JTextArea(10, 20);
		text.setLineWrap(true);
		tf1 = new JTextField(c);
		tf1.setText("Hier eingabe Möglich!");
		tf1.selectAll();
		tf1.addActionListener(this);
		scroller = new JScrollPane(text);
		scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		panel2.add(scroller);
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		frame1.getContentPane().add(BorderLayout.WEST, panel);
		frame1.getContentPane().add(BorderLayout.EAST, panel2);
		frame1.getContentPane().add(BorderLayout.SOUTH, tf1);
		frame1.setSize(350, 300);
		frame1.setVisible(true);

		text.append("Bitte Loggen Sie sich zunächst ein! \n");
	}

	public void weiterGehts() {
		System.out.println("WEITERG GEHTS");
	}

	public void actionPerformed(ActionEvent ev) {
		try {
			if (ev.getSource() == b1) {
				text.append("Sie haben \"1\" gewählt, sind Sie sicher? \n");
				test = 1;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		try {
			if (ev.getSource() == b2) {
				text.append("Sie haben \"2\" gewählt, sind Sie sicher? \n");
				test = 2;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		try {
			if (ev.getSource() == b3) {
				text.append("Sie haben \"3\" gewählt, sind Sie sicher? \n");
				test = 3;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		try {
			if (ev.getSource() == b4) {
				text.append("Sie haben \"4\" gewählt, sind Sie sicher? \n");
				test = 4;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		try {
			if (ev.getSource() == b5) {
				text.append("JA \n");
				test = 10;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		try {
			if (ev.getSource() == b6) {
				text.append("NEIN \n");
				test = 20;
			}
		} catch (Exception e) {
			text.append("Fehler im Code!\n" + e);
		}

		if (ev.getSource() == tf1) {
			test = 1;
			System.out.println(tf1.getText());
			c = tf1.getText();
			
			cp = JOptionPane.showInputDialog("Bitte Passwort eingeben", "Bitte Passwort eingeben");

			if (c.equals("Administrator")) {

				text.append("Guten Tag Admin, geben Sie Ihr Kennwort ein!");

				if (cp.equals("1793qwert")) {

					text.append("LogIn ERFOLGREICH! ## ! ##!");
					weiterGehts();
				} else {
					text.append("FALSCHES KENNWORT - bitte neu eingeben");
				}
			} else {
				text.append("FALSCHER benutzername - bitte neu eingeben");
			}
		}
	}
}
```


----------

