Mehrzeiligen Text aus JTA lesen und in andere JTA kopieren

Status
Nicht offen für weitere Antworten.

PELLE

Bekanntes Mitglied
Hallo,

ich habe eine JTArea names "informationTA", welche mehrzeiligen Text enthält. Die Instanz enthält umgebrochenen Text sprich jede Zeile wurde auf 60 Zeichen/zeile begrenzt! Nun möchte ich die JTA "informationTA" Zeile für Zeile auslesen und an einer ganz bestimmten Stelle in der JTA "zielJTA" einfügen. Diese ganz bestimmte Stelle stellt der Platzhalterstring "%info%" dar (siehe unten)


Diese Methode liest eine Zeile aus einem Textfield und fügt diese in die zielJTA ein an der Stelle "%info%"!!!

Das gleiche mit Hilfe untenstehender Methode möchte ich nun für mehrere zeilen Text erreichen, sprich die 1. Zeile wird eingefügt bei "%info%" und alle nachfolgenden Zeilen kommen bündig untendrunter!

Code:
public void replaceDate()
      {
         String datum = datumTF.getText();   // 
         String zielJTA = nfoBereich.getText();  Der komplette Text der JTA-instanz "nfoBereich" wird in die var "zielJTA"                     kopiert
         String neuerText = zielJTA.replaceAll("(?>\\%date\\%) *", datum + " ."); //Das Datum wird an die Stelle von            %date$ kopiert
         nfoBereich.setText(neuerText);  Die variable neuerText mit dem neuen Text wird in den nfoBereich kopiert mit setText!!!
      }

Was muss ich also machen um diese Zeilen sozusagen formatiert(an dem Platzhalter %info% eingefügt und alles untereinander) in die JTA zielJTA zu kopieren??? Kurz gefragt: Wie JTA zeilenweise lesen und wieder zeilenweise wo einfügen?
 

PELLE

Bekanntes Mitglied
Code:
StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");
         while(stok.hasMoreTokens())
         {
            String sonk= stok.nextToken();
         }

Ok so könnte ich die JTA auslesen, aber wie sage ich nun jeder einzelnen Zeile dass sie in der zielJTA an eine bestimmte STelle spric alle Zeilen untereinander soll??? Die 1.zeile könnte ich ja mit siehe unten...


Code:
String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *", sonk);
nfoBereich.setText(neuerText);


...an dem cookie "%info%" einfügen mit replaceAll, doch wie füge ich die 2,3,4 usw. Zeile an einer bestimmten Spalte ein in der zielJTA, wenn es nur für die 1.Zeile einen Cookie gibt und nicht für die Zeilen 2 - bis unendlich... ???


habs mal so versucht,


Code:
StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");
         while(stok.hasMoreTokens())
         {
            String sonk= stok.nextToken();
            String zielJTA = nfoBereich.getText();
            String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *", sonk + "\n");
            nfoBereich.setText(neuerText);
         }


aber so wird nur die 1. zeile in den cookie %info% eingefügt und der zeilenumbruch wird erst gar net beachtet sprich die 1.zeile ist dann 300 zeichen lang z.B.

ok wenn er beim 2.mal die while schleife durchläuft kopiert der die 2.zeile immer noch an die stelle %info% sprich eine zeile überschreibt immer die andere , aber er soll ja die nächste zeile nehmen und dorthin schreiben!!!??
 

André Uhres

Top Contributor
Wenn die "%text%"-Zeile kommt, dann ersetzt du den Platzhalter durch die erste Zeile von der beschreibungTA. In die folgende Zeile vom infoBereich fügst du dann die nächste Zeile von der beschreibungTA ein, usw..
 

PELLE

Bekanntes Mitglied
André Uhres hat gesagt.:
Wenn die "%text%"-Zeile kommt, dann ersetzt du den Platzhalter durch die erste Zeile von der beschreibungTA. In die folgende Zeile vom infoBereich fügst du dann die nächste Zeile von der beschreibungTA ein, usw..

Das ist mir schon klar...den nichts anderes mache ich ja weiter oben im thread, nur gehts es nicht wie gesagt, denn wie sage ich diese Code:

Code:
StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");
         while(stok.hasMoreTokens())
         {
            String sonk= stok.nextToken() + "\n";
            String zielJTA = nfoBereich.getText();
            String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *", sonk );  /// 4.zeile im code
            nfoBereich.setText(neuerText);
         }

dass %info% schon durch die 1.zeile ersetzt wurde und nicht jedes mal die ///4.zeile im code ausgeführt wird ???
Sollte ich da einen boolschen wert setzen nachdem die 1.zeile eingefügt wurde und hinterher jedesmal ne if abfrage machen, ob dies die 1.zeile ist wenn nicht machen zeilenumbruch und linefeedback(wagenrücklauf oder so...) und schreibe die 2.zeile an der anfang der 2.zeile von nfoBereich?

Das "\n" in der zeile 2. des codes : String sonk= stok.nextToken() + "\n";

sorgt dafür dass jedesmal ein Zeilenumbruch gemaht wird wenn die replaceAll Methode aufgerufen wird, doch verstehe ich wie gesagt nicht, wie ich es bewerkstellige dem code zu sagen schreibe nicht auf den Platzhalter sondern immer eine zeile drunter... du verstehtst?
 

PELLE

Bekanntes Mitglied
Habs nochmals so probiert, aber er schreibt nicht in die nächste Zeile, nur den zeilenumbruch macht er...
Code:
 public void replaceInformation()
      {
         boolean ersteZeile = true;
         StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");
         while(stok.hasMoreTokens())
         {
            if(ersteZeile == true)
            {
              String sonk= stok.nextToken() + "\n";
              String zielJTA = nfoBereich.getText();
              String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *", sonk );
              nfoBereich.setText(neuerText);
              ersteZeile = false;
            }
            else
            {
               String sonk= stok.nextToken();
               nfoBereich.append(sonk + "\n");
            }
         }
      }

was macht eigentlich genau diese Methode?

replaceRange(String str, int start, int end)


start und end sind das die spaltennummern in der JTextarea???
 

PELLE

Bekanntes Mitglied
Code:
public void replaceInformation()
      {
         boolean ersteZeile = true;
         StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");

         while(stok.hasMoreTokens())
         {
            if(ersteZeile == true)
            {
              String sonk= stok.nextToken() + "\n";
              String zielJTA = nfoBereich.getText();
              String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *", sonk );
              nfoBereich.setText(neuerText);
              ersteZeile = false;
            }
            else
            {
               String sonk= stok.nextToken();
               nfoBereich.replaceRange(sonk + "\n",1,60);
               homepageTF.setText("Dies ist der Testtext um zu schauen, ob der "else" Rump überhaupt ausgeführt wird!");
            }
         }
      }

obiger Code in der "else" Verzweigung wird anscheinend überhaupt nicht ausgeführt, deshalb auch der Grund warum alle zeilen nach der 1.zeile nicht in die nächste Zeile von nfoBereich schreiben...kann mir jemand sagen was mir der boolschen Logik hier nicht stimmt??? eigentlich müsste die "else" Verzweigung ausgeführt werden, nachdem ich ersteZeile auf false gesetzt habe...
 

PELLE

Bekanntes Mitglied
ok das mit if und else war schlecht... habe eine bessere idee muss sie nur noch umsetzen können :D

den obigen Code der Methode habe ich mal so abgeändert:

Code:
StringTokenizer stok = new StringTokenizer(informationTA.getText(),"\n");
         int LinienAnzahl = informationTA.getLineCount();
         String [] tabelle = new String[LinienAnzahl];
         String [] tabelleNeu = new String[LinienAnzahl];
         int zaehler = 0;
         while(stok.hasMoreTokens())
         {
            String sonk= stok.nextToken() + "\n";
            tabelle[zaehler] = sonk + "\n";                // einlesen jeder zeile in das array tabelle
            zaehler += 1;

         }

         String zielJTA = nfoBereich.getText();
         for (int i = 0 ; i < tabelle.length ; i++)
         {

            tabelleNeu[i] = tabelle[i] + "\n";           // einlesen jeder zeile in neues array mit dranhängen von \n für
                                                                     //     zeilenumbruch 
         }

         String ErsatzString = Arrays.toString(tabelleNeu); // das neue array mit den zeilenumbrüchen wird in einen string
         String neuerText = zielJTA.replaceAll("(?>\\%info\\%) *" , ErsatzString);  //umgewandelt "Ersatzstring"
         nfoBereich.setText(neuerText);


Warum wird die 1.zeile bzw. alle anderen zeilen ebenso ohne zeilenumbruch geschrieben, bzw. der zeilenumbruch findet statt wie ihr auf dem bild seht, aber der text wird munter rechts weitergeschrieben, warum??? und warum ist am ende und anfang de strings eine eckige Klammer zu sehen ala "[ ] " ????



Das gelbe sind die beiden eckigen Klammern, das blaue ist ne leerzeile und darüber die zahlen wurden in der JTArea "informationTA" eingegeben in das array "tabelle bzw. tabelleNeu" und in einen String konvertiert und ausgeben, nur eben wird der text nicht in die 2. und 3. usw. zeile ausgegeben?? Daher auch mein versuch per string array ein Zeilenumbruch per "\n" hinzuzufügen...
 

PELLE

Bekanntes Mitglied
Keiner kann helfen???? Also die Forumssuche habe ich ausgiebig benutzt und da finde ich nix nix nix!!! :-(
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Resourcebundle - mehrzeiligen Text erlauben Allgemeine Java-Themen 3
L-ectron-X Regex zum Entfernen von mehrzeiligen Kommentaren Allgemeine Java-Themen 2
A Mehrzeiligen Eintrag in Ressourcebundle (.properties-Datei) Allgemeine Java-Themen 8
O Mit jsoup Text aus HTML-Datei rausgrabben Allgemeine Java-Themen 29
C EML Email Text in String wandeln Allgemeine Java-Themen 11
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
M Thymeleaf th value und th text Allgemeine Java-Themen 1
_user_q Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
G Darstellung von Text auf MapContext von GeoTools Allgemeine Java-Themen 2
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
izoards Bestimmter Text aus PDF extrahieren Allgemeine Java-Themen 3
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
L Text filtern Allgemeine Java-Themen 1
Bluedaishi TEXT Kodierung Allgemeine Java-Themen 3
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
S Ini Text aus String parsen Allgemeine Java-Themen 1
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
windl Text mining / deep learning Allgemeine Java-Themen 0
I Text aus Input-Box entnehmen und zuweisen Allgemeine Java-Themen 1
KeexZDeveoper Text Mining Allgemeine Java-Themen 3
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
A Datenexport (Text und Draw) Allgemeine Java-Themen 1
L Text von txt auf JTextArea Allgemeine Java-Themen 4
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
I Apache POI Word Text einfügen Allgemeine Java-Themen 26
T itext: text in ein textfeld hinzufügen Allgemeine Java-Themen 2
B Farbiger Text in der Konsole Allgemeine Java-Themen 1
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
D Text Analyzer Allgemeine Java-Themen 2
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
J Java - Zeile aus Text datei löschen Allgemeine Java-Themen 13
M Text in erstelltes Excelfile schreiben Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
P HTML Text bearbeiten Allgemeine Java-Themen 1
B JFrame Text Ausgabe Allgemeine Java-Themen 7
G Makierter Text in Arbeitsspeicher Allgemeine Java-Themen 2
B Text in die Mitte der Konsole schreiben. Allgemeine Java-Themen 1
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
P iText Text zentrieren Allgemeine Java-Themen 3
J Verschlüsselung von Text? Allgemeine Java-Themen 2
M Text datei in java jar datei einbinden Allgemeine Java-Themen 4
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Robuste Methode um Text von HTML code zu extrahieren..? Allgemeine Java-Themen 6
achillesat Rich Text Editor Allgemeine Java-Themen 2
M CMD-Text anzeigen Allgemeine Java-Themen 10
G Text Mining Allgemeine Java-Themen 7
B Text auf Standarddrucker drucken Allgemeine Java-Themen 3
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
nrg Find and replace Text docx Allgemeine Java-Themen 6
M Ein bestimmtes Wort in einem Text zählen (String in String) Allgemeine Java-Themen 9
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
B Text wird nicht richtig angezeigt Allgemeine Java-Themen 9
Q Text Datei einlesen Allgemeine Java-Themen 27
N .doc text ändern Allgemeine Java-Themen 12
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
M NOA an den Source Text des Dokumentes kommen Allgemeine Java-Themen 7
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
D markierten Text kopieren Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Datei als ASCII text einlesen ? Allgemeine Java-Themen 16
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
M String in Html Text umwandeln Allgemeine Java-Themen 2
T eingefügter Text nach dem rendern spiegelverkehrt Allgemeine Java-Themen 2
lumo encoding einer text-datei Allgemeine Java-Themen 2
E Text ans Ende einer Textdatei anfügen Allgemeine Java-Themen 2
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
R Java Text anderer Schriftart einlesen Allgemeine Java-Themen 2
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
S Koordinaten aus einem Text filtern Allgemeine Java-Themen 11
turmaline Text aus Web-Seiten auslesen Allgemeine Java-Themen 1
MQue Graphics2D Text Allgemeine Java-Themen 2
U Text verschmelzen Allgemeine Java-Themen 8
martin82 Java-Code aus Text-Datei parsen Allgemeine Java-Themen 3
W Text curser auswählen für Paste Allgemeine Java-Themen 15
G HTML-Datei einlesen, Plain Text in Textfile speichern Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben