TextArea über mehrere Zeilen - wie Zeileanzahl abfragen?

MadBlue

Aktives Mitglied
Hallo zusammen,

ich habe ein Problem dem ich nicht ganz Herr werde... folgendes ist das Kernproblem:
ich habe eine JTextArea mit einer begrenzten länge. Wenn die Länge erreicht wird wird automatisch in der nächsten Zeile weiter geschrieben. Das erreiche ich mit:
this.setWrapStyleWord(true);
this.setLineWrap(true);

Bei der Textausgabe (getText) ist das dann allerdings doch wieder nur eine Line...
ich möchte aber herausfinden wieviele Zeilen das Teil erreicht.

(Hintergrund: die Textarea steckt in einer Tabelle, ich möchte die Zeilenhöhe natürlich erhöhen wenn ich mehrere Zeilen brauche in der TextArea...)

mit getLineCount etc. komm ich leider nicht ans Ziel, auch mit dem line.sperator hab ich keine Ergebnisse erreicht...

Hat hier wer eine kluge Idee für mich?

Sören
 

KrokoDiehl

Top Contributor
Verstehe ich Recht dass es hier um die Darstellung einer JTextArea in einer Tabelle (als Renderer/Editor) geht und du die Zeilenhöhe anpassen möchtest?

In dem Fall hast du mehrere Möglichkeiten. In deiner Tabelle kannst du die
Code:
editingStopped()
-Methode überschreiben und dort reagieren, wenn sich der Inhalt einer JTextArea geändert hat. Mit
Code:
JTable.setRowHeight()
kannst du dann die Zeilenhöhe anpassen.
Du könntest auch an deinen TextArea-TableCellEditor einen Listener hängen (CellEditorListener oder so) und dort das eben beschriebene Prozedere ausführen.
 

MadBlue

Aktives Mitglied
Huhu,

ja fast, ich brauch das nur im Renderer, im Editor ist das egal, die eingaben sind nur Floats und die sind nicht so arg lang.

Das Problem ist halt, das die Tabelle dynamisch gefüllt wird (aus einem externen Datenbestand) und ich vorher nicht weiß wie groß die Spalte sein muss... daher hab ich mir für den Renderer etwas in der Art ausgedacht:

JTable.setRowHight(Anzahl-Zeilenumbrüche * 20px);

Dazu müsste ich aber die automatisch umgebrochenen Zeilen irgendwie raus lesen... und genau das funktioniert nicht...

Sören
 

KrokoDiehl

Top Contributor
Ich würde die Daten zuerst einmal in die Tabelle laden. Immerhin ist die Darstellung mit Zeilenumbruch auch nur eine reine Darstellung. Wie du ja erwähnt hast, hat der Text gar keine echten Zeilenumbrüche.
Wenn alles in der Tabelle ist, kannst du die Zeilenhöhen anpassen lassen. Schau dir mal den TableColumnAdjuster an. Hier geht es zwar um die Spaltenbreite, aber das Prinzip lässt sich auch auf die Zeile anwenden:
Du gehst über alle Zeilen und holst die dir gewünschte Höhe (preferredSize.height) der Renderer. Aus dem jeweiligen Maximum der Zeile kannst du die Gesamthöhe setzen.

Hier der Codeauschnitt für Spalten:
Java:
	/*
	 *  Calculate the width based on the widest cell renderer for the
	 *  given column.
	 */
	private int getColumnDataWidth(int column)
	{
		if (! isColumnDataIncluded) return 0;

		int preferredWidth = 0;
		int maxWidth = table.getColumnModel().getColumn(column).getMaxWidth();

		for (int row = 0; row < table.getRowCount(); row++)
		{
    		preferredWidth = Math.max(preferredWidth, getCellDataWidth(row, column));

			//  We've exceeded the maximum width, no need to check other rows

			if (preferredWidth >= maxWidth)
			    break;
		}

		return preferredWidth;
	}
 

MadBlue

Aktives Mitglied
hmmmm... ich werd gleich mal versuchen das so rein zu nehmen, aber es würde mich wundern wenn das so funktioniert, die preferedHight von der JTextArea bleibt ja dummerweise ebenfalls auf 16 wenn der Platz nicht da ist...

Sören
 

MadBlue

Aktives Mitglied
Ich nochmal,

mit der breite hast du mich auf eine andere, gute Idee gebracht!

die preferedHight war ja leider immer 16, die preferedWidth hingegen nicht!

Nu geh ich her und sage halt: Wenn preferedWidth > maximale Spaltenbreite dann doppelte Höhe pro Zeile... wunderbar...
nu muss ich nur noch den Workaround um die Dauerschleife integrieren...

Auf jedenfall besten Dank mal wieder!

Sören
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing Eine andere Klasse über Button starten und in TextArea ausgeben AWT, Swing, JavaFX & SWT 13
C TextArea Problem :( TextArea über komplettem JFrame AWT, Swing, JavaFX & SWT 2
S Text in Textarea über empfangenen Socketstream anzeigen AWT, Swing, JavaFX & SWT 4
L TextArea Zeichenabstand gleich machen AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
D Hohe Prozessorauslastung bei Ausgabe auf TextArea AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
Hatsi09 TextArea formattieren AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX MVC: Thread in Model Class mit Ausgabe in TextArea AWT, Swing, JavaFX & SWT 10
E Eingabe von Zahlen in TextArea AWT, Swing, JavaFX & SWT 2
K JavaFX: TextArea updated nicht AWT, Swing, JavaFX & SWT 7
M JavaFX TextArea disabled - ScrollBar enabled AWT, Swing, JavaFX & SWT 3
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
MrSnake JavaFX TextArea updated nicht AWT, Swing, JavaFX & SWT 22
N JavaFX TextArea Updaten bevor Prozess gestartet wird AWT, Swing, JavaFX & SWT 7
B Java FX FXML Textarea SceneBuilder als XML Editor AWT, Swing, JavaFX & SWT 1
T JavaFX System.out.println in TextArea AWT, Swing, JavaFX & SWT 15
F JavaFX JavaFX HTMLEditor-Eingabe in Textarea als HTML anzeigen AWT, Swing, JavaFX & SWT 2
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
S passende PaintComponent ? Zeichnen in TextArea mit Scrollpane ? AWT, Swing, JavaFX & SWT 2
E Swing Error icon in der TextArea AWT, Swing, JavaFX & SWT 1
thobren JavaFX textarea nach setPrefRowCount Ansicht aktualisieren AWT, Swing, JavaFX & SWT 1
thobren JavaFX Inhalte aus dynamischen vbox mit TextArea auslesen AWT, Swing, JavaFX & SWT 9
thobren Swing Im JPanel wird nur TextArea gelöscht AWT, Swing, JavaFX & SWT 13
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
M JavaFX TextArea einzelne Buchstaben färben AWT, Swing, JavaFX & SWT 3
M JavaFX TextArea richtig formatieren AWT, Swing, JavaFX & SWT 4
S ScrollPane in Textarea und auf Panel AWT, Swing, JavaFX & SWT 4
S Die Rücktaste und Entfernen in einer Textarea blockieren AWT, Swing, JavaFX & SWT 3
S TextArea get Selected row(Text) AWT, Swing, JavaFX & SWT 6
F textarea lässt panel verschwinden AWT, Swing, JavaFX & SWT 4
V Swing Update Textarea AWT, Swing, JavaFX & SWT 2
E TextArea - Maximale Zeichenanzahl AWT, Swing, JavaFX & SWT 2
N Swing teilstring in textarea fett machen AWT, Swing, JavaFX & SWT 13
J Swing TextArea mit nicht-editierbarem Text AWT, Swing, JavaFX & SWT 7
W Vergleich zweier Strings und schreiben in Textarea AWT, Swing, JavaFX & SWT 12
R AWT TextArea schreibunfähig machen AWT, Swing, JavaFX & SWT 5
J Werkzeugleiste für TextArea? AWT, Swing, JavaFX & SWT 10
S Textarea und Enter AWT, Swing, JavaFX & SWT 5
El_Lobo Swing Swing TextArea und JTextField werden nicht aktualisiert AWT, Swing, JavaFX & SWT 2
R Textarea zeigt Text nicht an AWT, Swing, JavaFX & SWT 5
H TextArea zeigt kein Text an AWT, Swing, JavaFX & SWT 6
S Frage zu TextArea AWT, Swing, JavaFX & SWT 2
C TextArea Ausgabe immer ganz oben AWT, Swing, JavaFX & SWT 3
C Konsolenausgabe in TextArea ausgeben AWT, Swing, JavaFX & SWT 8
P Swing Methodenaufruf beeinflusst TextArea nicht. AWT, Swing, JavaFX & SWT 6
S TextArea ausgabe ohne JFrame zu implementieren AWT, Swing, JavaFX & SWT 2
M Inhalt aus TextArea verarbeiten AWT, Swing, JavaFX & SWT 4
A Swing Text von System.out.printIn in eine TextArea übergen AWT, Swing, JavaFX & SWT 12
S Sobald ich TextArea mit Text fülle alles weg? AWT, Swing, JavaFX & SWT 5
P TextArea Größenänderung AWT, Swing, JavaFX & SWT 4
M problem mit keylistener/textarea AWT, Swing, JavaFX & SWT 6
H anderes font in textarea AWT, Swing, JavaFX & SWT 2
E Datei in TextArea anzeigen AWT, Swing, JavaFX & SWT 12
Luy Per TAB-Taste aus TextArea wieder raus? AWT, Swing, JavaFX & SWT 5
H AWT TextArea, TextListener AWT, Swing, JavaFX & SWT 5
D Swing [BoxLayout] Nur TextArea und nicht TextField vergroessen AWT, Swing, JavaFX & SWT 2
W JTextArea/TextArea kriegt keinen Fokus AWT, Swing, JavaFX & SWT 6
A Strings an Textarea anderer Klasse append(en) AWT, Swing, JavaFX & SWT 12
U Problem mit dem TextArea.appen()- Befehl AWT, Swing, JavaFX & SWT 2
G Textarea zeigt Text erst am Schluss an AWT, Swing, JavaFX & SWT 2
W JTextArea vs TextArea AWT, Swing, JavaFX & SWT 3
K TextArea auf Scrollpane AWT, Swing, JavaFX & SWT 3
A Dateien in TextArea ausgeben AWT, Swing, JavaFX & SWT 6
G Textarea soll automatisch mitrollen AWT, Swing, JavaFX & SWT 2
G Feste Größe einer TextArea AWT, Swing, JavaFX & SWT 2
G Kontextmenü zum kkopieren in einer TextArea AWT, Swing, JavaFX & SWT 5
D GUI + TextArea + inhalt der wörter zählen AWT, Swing, JavaFX & SWT 4
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
M TextArea relativ zur Fenstergröße AWT, Swing, JavaFX & SWT 14
Y Zahlen aus einer Textarea auslesen AWT, Swing, JavaFX & SWT 2
V textarea Problem Positionierung AWT, Swing, JavaFX & SWT 2
G textarea.read funzt net in Jar-Datei AWT, Swing, JavaFX & SWT 7
K Center Text in TextArea AWT, Swing, JavaFX & SWT 8
ModellbahnerTT Ersatz für Textarea AWT, Swing, JavaFX & SWT 13
K Zeilen von TextArea auswählen AWT, Swing, JavaFX & SWT 3
M Problem mit Layout wegen Textarea AWT, Swing, JavaFX & SWT 3
F Scrollpane scrollt immer zur TextArea AWT, Swing, JavaFX & SWT 8
F Graphics2D scale und Positionierung einer TextArea AWT, Swing, JavaFX & SWT 8
J TextArea unkontrollierbar AWT, Swing, JavaFX & SWT 4
G toString -> TextArea AWT, Swing, JavaFX & SWT 2
F Einlesen von text in textArea mittels for-schleife AWT, Swing, JavaFX & SWT 3
L TextArea AWT, Swing, JavaFX & SWT 6
X textarea updaten bevor eine Methode aufegerufen wird AWT, Swing, JavaFX & SWT 6
G keyListener & textarea AWT, Swing, JavaFX & SWT 2
C Text in TextArea gestalten AWT, Swing, JavaFX & SWT 2
M Farben im TextArea AWT, Swing, JavaFX & SWT 5
N TextArea positionieren AWT, Swing, JavaFX & SWT 3
P TextArea zeilenumbruch AWT, Swing, JavaFX & SWT 7
André B. formatierung in TextArea AWT, Swing, JavaFX & SWT 7
C Textarea kontinuerlich updaten AWT, Swing, JavaFX & SWT 3
D setCaretPosition, nicht-editierbare TextArea AWT, Swing, JavaFX & SWT 8
J TextArea begrenzen AWT, Swing, JavaFX & SWT 6
P [TextArea] Text Formatieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben