# Textarea und Enter



## Seppel (23. Dez 2011)

Hallo,
folgendes Problem:
habe ein JTextarea und in diesem soll man selbstverständlich Text schreiben, so soll es natürlich auch möglich sein per Enter die nächste Zeile zuereichen.
Der Text wird dann später in einem Textdokument abgespeichert.
Aber das sollte eigentlich immer in einer Zeile geschehen!
Das Enter macht mir da ein Strich durch die Rechnung. Was könnte ich tun damit zwar Enter erlaubt bleiben kann, aber das im Textdkument nicht so abgespeichert wird.

meine Idee wäre ja den Text vor speichern durchzugehen und in ein Enter decodieren, und vor dem laden in das Area wieder entcodieren.
Nur wie?

Oder habt ihr einen besseren Vorschlag?

Danke
fröhliche Weihnachten


----------



## irgendjemand (23. Dez 2011)

hmm .. leider eine etwas ungenaue formulierung ...

wichtig wären z.b.

WIE holst du dir den inhalt aus der JTextArea ?
WAS gibt dir die gecallte methode zurück ? *typ , inhalt*
WIE wird der zeilenumbruch dargestellt ?
WIE sind dein datei-format aus *encoding , etc*
WAS soll in WAS codiert werden ? "RETURN" in "0x10 , 0x13" ?
WIE soll decodiert werden ?
IST de-coding beim laden in die JTextArea so überhaupt möglich ?
verwendest du ein geändertest Document ?

ein paar mehr infos bräuchten wir dann doch schon


----------



## bERt0r (23. Dez 2011)

Also das versteh ich jetzt nicht. Wenn du in der Textarea ein Enter machst, bedeutet das, im String der dann rauskommt steht ein \n drin. Diese \n werden dann natürlich in dein Textfile mitreinkopiert. Du kannst jetzt einfach alle \n aus deinem String rauslöschen, nur Frage ich mich wieso - wenn ich bei einer Eingabe ein Enter mache, will ich eben genau dass da ein \n eingefügt wird.

Eventuell suchst du einfach nur nach einer Möglichkeit einen Zeilenumbruch zu aktivieren:
textArea.setLineWrap(true);


----------



## Seppel (24. Dez 2011)

@irgendjemand
Naja ich glaub getText war der Befehl um den Text zubekommen und dann speicher ih den Text in ein Textdokument. *.txt



> WIE wird der zeilenumbruch dargestellt ?


Das geht in Richtung meines Problemes, also wie dein Nachfolger beschrieb war ich auch der Meinung das \n der Umbruch war.
Wenn ich jetzt aber dannach Suche find ich denn Umbruch nicht, oder ich suche halt falsch.
Das \n wenn es Enter ist,soll z.B. als <Umbruch> oder anders codiert werden, natürlich so das dieser Synonym nicht mehr normal geschrieben werden kann. und nach dem auslesen aus der *.txt wird das zurückgewandelt.
Problem ist nähmlich folgendes, neben dem Text sollen auch noch andere Infos eingebaut werden, jeder Datensatz ist eine Zeile. Wenn jetzt im Text Enterzeichen wären, würde es nicht mehr funktionieren.
Kurz gesagt im Programm sollen die Enter zusehen sein, aber in der "Datenbank" nicht.

Wie gesagt war halt eine Idee von mir, und vielleicht gibt es bessere.




> Eventuell suchst du einfach nur nach einer Möglichkeit einen Zeilenumbruch zu aktivieren:
> textArea.setLineWrap(true);


Nein das brauche ich nicht, ist bereits eingebaut, damit das Fenster nicht selbständig breiter wird


----------



## bERt0r (24. Dez 2011)

Bitteschön, ein Weihnachtsgeschenk:

```
import java.awt.BorderLayout;


public class TextOhneN extends JFrame {

	private JPanel contentPane;
	private JTextArea textArea;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TextOhneN frame = new TextOhneN();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public TextOhneN() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		textArea = new JTextArea();
		contentPane.add(textArea, BorderLayout.CENTER);
		
		JButton btnSchreibMichIn = new JButton("Schreib mich in ein Textfile ohne die NewLines");
		btnSchreibMichIn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				JFileChooser jf=new JFileChooser();
				int ret=jf.showSaveDialog(TextOhneN.this);
				if(ret==JFileChooser.APPROVE_OPTION)
				{
					File f=jf.getSelectedFile();
					try {
						PrintWriter writer=new PrintWriter(new FileWriter(f));
						String text=textArea.getText();
						text=text.replaceAll("\n", "");
						writer.println(text);	
						writer.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		});
		contentPane.add(btnSchreibMichIn, BorderLayout.SOUTH);
	}
}
```
PS: Wenn du einfach mal ein KSKB erstellen würdest und ein bisschen Code postest würde dir schneller geholfen.
[Edit] PPS: Frohe Weihnachten ebenfalls [/Edit]


----------



## Seppel (24. Dez 2011)

Hi, erstmal danke und zum PS, das habe ich mir auch grad gedacht, 

text=text.replaceAll("\n", "");
Darauf hätte ich eigentlich kommen können, danke..

Frohe Weihnachten


----------

