JTextArea Absätze von datei.txt übernehmen

discofritz

Mitglied
hallo,

ich bin blutiger Java Anfänger und hab hier grad folgendes Problem:

Wenn ich in eine JTextArea eine .txt Datei per JButton einlade, dann schreibt er mir alles in einen Block. Diese Textdatei hat aber einzelne Absätze und ich hätte gern, dass die berücksichtigt werden. Das LineWrap und WrapStyleWord sind schon dabei, aber die verhindern ja auch nur, dass es nicht nur eine Zeile wird, sonder schonmal ein Absatz. Und mit \n oder \r im text arbeiten funzt natürlich auch nicht.

Wie geht denn das?

hier der aufbau der TextArea

Java:
import java.awt.Dimension;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import de.cimdata.projekt.model.FunktionDAOInterface;

public class TextArea extends JPanel {
	private FunktionDAOInterface dao;
	private JTextArea tf;

	public void update(String content) {
		tf.setText(content);
	}

	public TextArea(FunktionDAOInterface dao) {
		this.dao = dao;
		this.tf = new JTextArea();
		tf.setLineWrap(true); // Zeilenumbruch bei in Text-Area
		tf.setWrapStyleWord(true);
		add(new JScrollPane(tf));
		pack();
		setVisible(true);
		add(tf);

		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

		JScrollPane scrollpane = new JScrollPane(tf);
		setComponentSize(scrollpane, 0, 1000);
		tf.setEditable(false);
		tf.setOpaque(false);

		add(scrollpane);
	}

hab grad meinen ersten code präsentiert. wie is er?
 

nrg

Top Contributor
wo lädst du denn dann die Datei in die TextArea?

btw:
Code:
setVisible(true);
sollte erst ganz am ende aufgerufen werden
 

discofritz

Mitglied
hier...

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ButtonAction implements ActionListener {
	private GUI gui;
	private TextArea tf;

	public ButtonAction(GUI gui) {
		this.gui = gui;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		String command = e.getActionCommand();
		System.out.println(command);

		String line = null;
		StringBuffer sb = new StringBuffer();

		Dialog.currentBeschriftung = e.getActionCommand();

		try {

			if (command.equals("Konstante Funktionen")) {

				BufferedReader in = new BufferedReader(new FileReader(
						System.getProperty("java.class.path")
								+ "/resources/Konstante.txt"));
				

				while ((line = in.readLine()) != null) {
					sb.append(line);
					gui.update(sb.toString());
					System.out.println("update erfolgt");
				}

			} else if (command.equals("Lineare Funktionen")) {

				BufferedReader in = new BufferedReader(new FileReader(
						System.getProperty("java.class.path")
								+ "/Resources/Lineare.txt"));

				while ((line = in.readLine()) != null) {
					sb.append(line);
					gui.update(sb.toString());
					System.out.println("update erfolgt");
				}
			} else if (command.equals("Quadratische Funktionen")) {

				BufferedReader in = new BufferedReader(new FileReader(
						System.getProperty("java.class.path")
								+ "/Resources/Quadratische.txt"));

				while ((line = in.readLine()) != null) {
					sb.append(line);
					gui.update(sb.toString());
					System.out.println("update erfolgt");
				}
			} else if (command.equals("Trigonometrische Funktionen")) {

				BufferedReader in = new BufferedReader(new FileReader(
						System.getProperty("java.class.path")
								+ "/Resources/Trigonometrische.txt"));

				while ((line = in.readLine()) != null) {
					sb.append(line);
					gui.update(sb.toString());
					System.out.println("update erfolgt");
				}
			} else if (command.equals("Exponentialfunktion")) {

				BufferedReader in = new BufferedReader(new FileReader(
						System.getProperty("java.class.path")
								+ "/Resources/Exponential.txt"));

				while ((line = in.readLine()) != null) {
					sb.append(line);
					gui.update(sb.toString());
					System.out.println("update erfolgt");
				}

			}

		}

		catch (FileNotFoundException ex) {
		} catch (IOException ex) {
		}
	}

}

also von verschiedenen JButton`s verschiedene Texte aus einem Package imProjekt. Alle mit Absätzen...
 

nrg

Top Contributor
also erstmal was allgemeines: wenn du 4x das selbe machen willst, lohnt es sich vllt, das in einer methode auszulagern. so sparst du dir code und vereinfachst dir auch die handhabung. Ausserdem erbt JTextArea von JTextComponent die read methode, also musst du das nichtmal selbst machen: JTextComponent (Java Platform SE 6)
 

discofritz

Mitglied
aber das beantwortet doch meine ursprüngliche Frage gar nicht, oder liest mir die read methode das so ein, wie ich es gern hätte, also mit Absätzen etc.? Oder besser gesagt, wie er in dinA4 aussieht...
ich bräuchte nämlich bestimmt ne weile um das umzuschreiben.
Gibt es bei dem, was ich da gebastelt habe vielleicht nen Kniff?
 

nrg

Top Contributor
keine ahnung, was gui.update macht. du rufst ja in der loop immer gui.update auf. das ist vermutlich nicht so gewollt. ausserdem setzt sich ja der stringbuilder ohne linebreaks weiter zusammen und erst das letzte gui.update ist dann auch wirklich das, was du siehst. wie gesagt, die aussagen sind jetzt sehr von der methode update abhängig.

Java:
//....		
        String ls = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {
            sb.append(line).append(ls);
        }
        gui.update(sb.toString());
        System.out.println("update erfolgt");
//....

aber ja, die read-methode liest dir das genau so ein, wie du es haben willst (also mit absätzen etc). warum dann selber schreiben? :D
 
D

despikyxd

Gast
noch n tipp zur code-duplex reduzierung : warum nicht einfach das ActionCommand als datei-name verwenden ? ... sparrt viel code
 

discofritz

Mitglied
deine Ergänzung funktioniert ganz gut. jetzt siehts schonmal nach was zu lesen aus.

vielen dank...

ich probier die andere methode auch noch aus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTextArea getText() Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
C Threads jTextArea Ausgabeproblem Java Basics - Anfänger-Themen 3
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
T JTextarea in txt datei speichern Java Basics - Anfänger-Themen 3
snipesss JTextArea wird nicht angezeigt Java Basics - Anfänger-Themen 3
R JTextArea final Status ändern Java Basics - Anfänger-Themen 11
T Klassen JTextArea und TextArea Java Basics - Anfänger-Themen 8
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O JTextPane / JtextArea Zeilenabstand entfernen Java Basics - Anfänger-Themen 1
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
O JTextArea: Wo wird der Text gespeichert? Wie kann man es verhindern? Java Basics - Anfänger-Themen 4
M Farbiger Text in JTextArea Java Basics - Anfänger-Themen 5
H Input/Output JTextArea einzelne Zeile auslesen Java Basics - Anfänger-Themen 6
M Refresh JTextArea Java Basics - Anfänger-Themen 12
X Methode in JTextArea anzeigen lassen Java Basics - Anfänger-Themen 18
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
Q jTextArea maximale Textlänge Java Basics - Anfänger-Themen 3
Q jTextArea Zeilenendzeichen Java Basics - Anfänger-Themen 4
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
L Socket in JTextArea Java Basics - Anfänger-Themen 9
F JTextArea in .txt speichern Java Basics - Anfänger-Themen 13
E JTextArea beim Schreiben automatisch vergrößern Java Basics - Anfänger-Themen 7
F jTextArea Java Basics - Anfänger-Themen 3
B Werte aus JTextArea in einem String Array ablegen Java Basics - Anfänger-Themen 4
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
S JTextArea mit LineWrap true viel zu groß! Java Basics - Anfänger-Themen 2
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
N ein Array auf eine JTextArea ausgeben Java Basics - Anfänger-Themen 2
B JTextArea Farbe und Schrift aendern Java Basics - Anfänger-Themen 2
R JTextArea append Java Basics - Anfänger-Themen 2
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
M JTextArea Zeichen Beschränken Java Basics - Anfänger-Themen 11
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
N Dateiinhalt zu jTextArea hinzufügen Java Basics - Anfänger-Themen 2
StrikeTom JTextArea mit txt-dateiinhalt füllen Java Basics - Anfänger-Themen 11
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
K Text aus einem Datei lesen , und im JTextArea ausgeben. Java Basics - Anfänger-Themen 3
manunana89 Farbiger Textteile in JTextArea oder ähnlichem! Java Basics - Anfänger-Themen 5
B aktuelle Position einer JTextArea ermitteln Java Basics - Anfänger-Themen 6
Developer_X Strings in JTextarea suchen Java Basics - Anfänger-Themen 15
J Java JTextArea und ActionListener Probleme Java Basics - Anfänger-Themen 6
G JTextArea & Zeichenbegrenzung Java Basics - Anfänger-Themen 4
G Mit Tab aus der JTextArea? Java Basics - Anfänger-Themen 2
G JTextArea - farbige Schrift Java Basics - Anfänger-Themen 5
hdi Alternative zu JTextArea? Java Basics - Anfänger-Themen 3
T Text Rechtsbündig in jTextArea Java Basics - Anfänger-Themen 4
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
I Schriftart für einzelnes Wort in der JTextArea auswählen Java Basics - Anfänger-Themen 3
B jTextArea Neuzeichnung erzwingen Java Basics - Anfänger-Themen 3
L JTextArea große setzen Java Basics - Anfänger-Themen 5
G in einer JTextArea ROTE SCHRIFT ausgeben Java Basics - Anfänger-Themen 11
H JTextarea mit automatischem Scrolling Java Basics - Anfänger-Themen 6
W Zeilenposition in JTextArea feststellen(ohne Caret) Java Basics - Anfänger-Themen 7
G Ausgababeumlenkung in JTextArea Java Basics - Anfänger-Themen 4
S Ausrichtung des Textes in einer JTextArea Java Basics - Anfänger-Themen 12
C JTextArea + Zeilennummerierung Java Basics - Anfänger-Themen 3
D Eine ganze Textdatei in einer jTextArea anzeigen Java Basics - Anfänger-Themen 4
D JTextarea mit Zeilenumbruchs Problem Java Basics - Anfänger-Themen 10
R JTextArea +Leerzeilen Java Basics - Anfänger-Themen 3
M String aus externer Klasse in JTextArea schreiben Java Basics - Anfänger-Themen 4
G JTextArea mit Daten aus Datenbank ( im Wert Sring ) befüllen Java Basics - Anfänger-Themen 3
I JtextArea zeigt nichts an! Java Basics - Anfänger-Themen 3
B JTextArea mit verschiedenen Fonts Java Basics - Anfänger-Themen 4
I JTextArea insert Methode Java Basics - Anfänger-Themen 5
G JTextArea: Anlegen, Text löschen, überschreiben Java Basics - Anfänger-Themen 4
G Zählen der Zeichen in JTextArea? Java Basics - Anfänger-Themen 4
G JTextArea Java Basics - Anfänger-Themen 7
E Bild in JTextArea einfügen Java Basics - Anfänger-Themen 16
E Automatischer Zeilen-Umbruch bei JTextArea Java Basics - Anfänger-Themen 4
N JPanel / JTextArea vergrößern Java Basics - Anfänger-Themen 6
H Zeilennummern in JTextArea Java Basics - Anfänger-Themen 3
S JTextArea Java Basics - Anfänger-Themen 6
G JTextArea: insertUpdate() und writeLock() Java Basics - Anfänger-Themen 3
P In JTextArea soll automisch an einen bestimmte Scrollbar pos Java Basics - Anfänger-Themen 14
J schleife unterbrechen JTextArea aktualisieren Java Basics - Anfänger-Themen 8
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
D Mehrfarbige Zeilen in JTextArea Java Basics - Anfänger-Themen 4
D Text aus JTextArea löschen ? Java Basics - Anfänger-Themen 10
G Aktion bei Änderung in JTextArea starten Java Basics - Anfänger-Themen 2
C Markierten Text im JTextArea bearbeiten? Java Basics - Anfänger-Themen 2
D JTextArea Probleme !!! Brauche eure Hilfe Java Basics - Anfänger-Themen 2
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
O Jtextarea bzw jtextpane rechtsbündig oder blocksatz Java Basics - Anfänger-Themen 6
M Prob bei JTextArea auf .setEditable(false) setzen Java Basics - Anfänger-Themen 2
S JTextArea.ReplaceAll() schneidet Zeichen weg Java Basics - Anfänger-Themen 3
S JTextArea Problem mit Anzeige Java Basics - Anfänger-Themen 2
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
T JTextArea mit allen Formatierungen in eine Datei schreiben Java Basics - Anfänger-Themen 15
M Border um JTextArea? Java Basics - Anfänger-Themen 2
C Sonderzeichen (ä, ö, ü) in JTextArea Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben