# Eingabe in einem Ausgabefeld anzeigen lassen



## xxwishxx (29. Dez 2012)

Hallo zusammen, 

ich hoffe ich treffe hier jemanden, der mir behilflich sein kann.

ich stehe vor dem Problem, dass ich meine Eingabe in ein JTextArea Feld ganz gerne durch das Drücken eines Buttons in einem anderen weiteren TextField  angezeigt haben möchte. 

public void actionPerformed(ActionEvent e) {

	JButton knopf = new JButton("speichern");
	if (e.getSource().equals(knopf)) {
		???
		  }


ich habe jetzt ein JFrame gebaut mit einem JButton und zwei JTextArea Felder. Wie kann ich das ganze nun realisieren?

Ich würde mich sehr über Antworten freuen 

Viele Grüße


----------



## Marcinek (29. Dez 2012)

Schonmal vorab: Dein Code da oben ergibt wenig sinn (also keinen) 

...

Du hast ein JButton und dem hast du schon einen ActionListener hinzugefügt. Hier kannst du dann den Code reinmachen, der beim Drücken des Buttons ausgeführt werden soll.

also sowas wie:  
	
	
	
	





```
einTextField.setText(einAnderesTextFeld.getText());
```


----------



## xxwishxx (2. Jan 2013)

Hallo, 

erst einmal ein frohes neues Jahr 

Vielen Dank für deine Hilfe, an die getText() Methode habe ich noch gar nicht gedacht :-/

Viele Grüße


----------



## xxwishxx (2. Jan 2013)

Also ich habe die getText Methode ausprobiert, aber es funktioniert leider nicht, vielleicht kann mal einer über meinen Code schauen? :bahnhof:

Anstatt "Hallo Welt" soll die Eingabe der JTextArea sobald der Button gedrückt wird angezeigt werden.


```
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class HelloWorld implements ActionListener{
	
	JButton Ausgabe;
	
	
	

 public static void main (String[] args) {
	 HelloWorld helloworld = new HelloWorld();
 }
	
 		
	
	public HelloWorld() {
		JLabel label;
		
	//	JTextField field = new JTextField(200);
		JTextArea area = new JTextArea(10,20);
		
		JPanel panel = new JPanel();
		JFrame frame = new JFrame("HelloWorld");
		JButton Ausgabe = new JButton();
	
		frame.setSize(300, 200);
		frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
		frame.setVisible(true);
	    frame.add(panel);
	    Ausgabe = new JButton("Ja");
	    
	    Ausgabe.addActionListener(this);
	  
	    panel.add(Ausgabe);
	    frame.setContentPane(panel);
	    frame.add(area);

	    JTextField field = new JTextField("Hallo Welt");
	    panel.add(field);
	   
		
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		JTextArea area = new JTextArea(10,20);
		JTextField field = new JTextField("Hallo Welt");
		  if (e.getSource().equals(Ausgabe)) {
			  area.setText(field.getText());
			  
			  
}
}
}
```


----------



## SlaterB (2. Jan 2013)

neu erstellte Kompontenen sind nicht die aus der GUI

setVisible(true); unbedingt erst als letzten Befehl im Konstruktor!

etwas mehr Platz wäre auch nützlich


```
public class HelloWorld
    implements ActionListener
{
    JButton Ausgabe = new JButton();
    JTextArea area = new JTextArea(10, 20);
    JTextField field = new JTextField("Hallo Welt");

    public static void main(String[] args)
    {
        HelloWorld helloworld = new HelloWorld();
    }


    public HelloWorld()
    {
        JPanel panel = new JPanel();
        JFrame frame = new JFrame("HelloWorld");

        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);
        Ausgabe = new JButton("Ja");

        Ausgabe.addActionListener(this);

        panel.add(Ausgabe);
        frame.setContentPane(panel);
        frame.add(area);

        panel.add(field);
        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource().equals(Ausgabe))
        {
            area.setText(field.getText());
        }
    }
}
```


----------



## xxwishxx (2. Jan 2013)

Vielen lieben Dank für deine Hilfe !! 

Endlich klappt es


----------



## xxwishxx (2. Jan 2013)

Hallo, 

ich komme leider mal wieder nicht weiter ;(

ich möchte ganz gerne in eine JTextArea ein paar Attribute eingeben für verschiedene Objekte vom Typ 
Geschäft.

Sobald ich auf den Button drücke, sollen ein neues Objekt erzeugt werden und die Attribute die ich in der JTextArea eingegeben habe anschließend in ein Array gespeichert werde.

Muss ich dafür ein JTextArea-Array bauen oder ein Array vom Typ Geschäft?
Und wie kann ich die Daten aus der Maske dann einspeichern?

Hier ist mein Code hoffe er ist nachvollziehbar 


```
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.util.Vector;


public class Geschaeft implements ActionListener {
	

	JTextArea area = new JTextArea(10,20);
	JLabel label = new JLabel("Attribute des Geschäfts");
	JButton knopf = new JButton();
	public  String name;
	public double groeße;
	public String standort;
	public double anzahlMitarbeiter;


    Geschaeft[] geschaeft;
    JTextArea[] areaArray;
		
	

	
	public static void main(String [] args){
		Geschaeft geschaeft = new Geschaeft("Kaufland","Krefeld",3000,4000);
		
		Geschaeft[] manager1 = new Geschaeft[3];
		JTextArea[] areaArray = new JTextArea[2];
		areaArray[0] = new JTextArea(areaArray[0].getText());
		areaArray[1] = new JTextArea();
	  

	}
	
	


	//KOnstruktor um ein Objekt von Mitarbeiter zu erstellen
	   public Geschaeft(String name,String standort, double anzahlMitarbeiter,double groeße){
		this.name = name;
        this.standort = standort;
		this.anzahlMitarbeiter = anzahlMitarbeiter;
		this.groeße= groeße;
	    
	   
		JFrame frame = new JFrame("Geschäft");
		JPanel panel = new JPanel();
		
		
		frame.setSize(300, 350);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(new FlowLayout());
	    frame.add(panel);
		panel.add(label);
		panel.add(area);
		
		
		


		knopf = new JButton("Ausgabe");
		
		
		panel.add(knopf);
	     knopf.addActionListener(this);
		frame.setVisible(true);
		
		
		
		
	}
   

		
       
public void actionPerformed(ActionEvent e) {


	if (e.getSource().equals(knopf)) {
		for(int i = 0; i<areaArray.length;i++){
			System.out.println(areaArray[i]);
		}
	 
	}
	
}
	
        
}
```


----------



## SlaterB (2. Jan 2013)

was du dir gerade besonders abgewöhnen musst ist, lokale Variablen mit dem Namen der Attribute zu erstellen,
dann bleibt nämlich das Attribut leer

die main-Methode besser gleich ganz leer lassen außer das geschaeft-Objekt zu erzeugen, aber alles weitere dort im Konstruktor

mehrere JTextArea nehmen viel Platz ein, wie wäre es zunächst mit mehreren JTextFields?
in ein Array ist denkbar, aber mehrere einzelne Variablen hier vielleicht besser, weil du eh alles unterschiedlich ansprechen wirst,
nicht per Schleife,

aus Textfeldern oder Areas kann man den Text rausholen, das kennst du ja schon

die Texte beim Erstellen verwenden, worin besteht eine Frage?
wenn du etwa einen String in einen double umwandeln willst, kannst du danach in Suchmaschinen schauen


wenn du mehrere 'Geschaeft'-Objekt erstellen willst, dann sollte nicht Geschaeft selber die GUI sein..

verwende mehrere Klassen, eine ist die GUI, von einer anderen werden mehrere Objekte erstellt


----------



## xxwishxx (2. Jan 2013)

hmm also brauche ich für jedes Objekt ein eigenes TextFeld um dann die Attribute zu übergeben?

Aber wie kann ich denn meine eingegeben Attribute dem Objekt direkt übergeben?

Wenn ich also in meine TextArea zum Beispiel die Attribute :
"Kaufland","Krefeld",5000,3000
eingebe, wie werden diese dann direkt als Attribute eines neuen Objekts gespeichert?

Irgendwie stehe ich gerade auf dem Schlauch


----------



## SlaterB (2. Jan 2013)

nicht für jedes Objekt eigene Textfelder, kennst du keine Formulare wie hier im Forum wo du doch erfolgreich Postings eintippst?
übrigens durchaus den dicken roten Hinweis zu Java-Tags beachten!

alle Textfelder oder sonstigen GUI-Elemente braucht man genau so oft wie nötig, normalerweise nur einmal,
jeder Buttonklick wie 'Antworten' im Forum erstellt ein neues Posting

mein Vorschlag mehrere Felder (deine eigene Idee aufgenommen) bezog sich auf ein Feld für jede Information getrennt,
so wie man Formulare mit Name, Passwort, Email-Adresse usw. kennt,

alles kommagetrennt in ein Feld zu tippen ist doch eher ungewöhnlich, wenn auch möglich,
dann musst du den eingelesenen String 'nach Komma auftrennen', wieder etwas was man praktisch 1:1 in eine Suchmaschine eintippen kann


> Irgendwie stehe ich gerade auf dem Schlauch

falsche Bezeichnung, etwas nicht wissen betrifft jeden jeden Tag,
dann aber nicht suchen sondern im Forum anderen Menschen mit Trivialitäten belästigen, drastisch formuliert,
das ist keine besondere Auszeichnung


----------



## xxwishxx (2. Jan 2013)

Du, ich sitze nun seit ein paar Stunden genau genommen 7 daran. Du kannst mir glauben, dass ich schon mehr als nur dieses Forum hier durchsucht habe... leider bin ich nicht so fit und kann jeden Code so anpassen und umwandeln das es auf mein Problem zutrifft. Weil ich einfach keine Erfahrung habe.

Danke trotzdem!


----------



## bERt0r (2. Jan 2013)

> Code so anpassen und umwandeln das es auf mein Problem zutrifft


 Das macht niemand. Es ist auch viel mehr Arbeit damit verbunden, als wenn man lernt wie's geht und dann selber macht.


----------

