Auto-Größenänderung JTextArea
Möchte ich meine JTextArea, um die Größe selbst (vertikal erweitern), wenn die Letzte Zeile (die text-area in der Höhe bieten kann) erreicht ist, und der Benutzer möchte eine neue Zeile beginnen. Sie wissen, wie das Textfeld in MSWord.
Habe ich eine Idee zur Verwendung getLineCount()
und bestimmen Sie (falls erforderlich) die neue Höhe der JTextArea. Sie haben, oder wissen, bessere Ansätze für die Umsetzung dieser?
InformationsquelleAutor Halo | 2010-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich die
JTextArea
hat immer die richtige Größe, so dass alle Zeilen sichtbar sind. Was Sie erleben ist wahrscheinlich, dass Sie wickelte den Textbereich in eineJScrollPane
. Nur das auslassen der scroll-Bereich und stellen Sie den text-Bereich ein direktes untergeordnetes Element des Containers.Andere Lösung ist zu hören auf resize-Ereignisse für den text-Bereich und die Größe der scroll-Bereich entsprechend. Auf diese Weise können Sie zu einer bestimmten Größe wachsen und dann beginnen, Bildlaufleisten (wenn jemand zum Beispiel Pasten 500KB text in den text-Bereich).
Sie müssen nur die Größe des JPanel, so dass der text-Bereich wachsen kann. Das Textfeld sollte dann automatisch passen sich der Größe des Textes innerhalb.
gut, es hat nicht funktioniert. BTW ich wechselte mit JTextPane, aber immer noch das problem mit dem ausbau weiter
hmm, ich denke es ist ein problem mit der Einstellung der text. Ich setText (), aber wahrscheinlich sollte ich verwenden insertString(). ich werde versuchen, dass
nope, es hat nicht funktioniert
InformationsquelleAutor Aaron Digulla
Ich hatte das gleiche problem. Aus meinen tests, ich glaube nicht, dass die JTextArea stellt seine Größe dynamisch. Stattdessen, seine Größe scheint limitiert zu sein durch seine container (JPanel in meinem Fall). Aber die JTextArea ändert seine bevorzugte Größe auf der Grundlage der text, den es enthält. Aus der Dokumentation:
InformationsquelleAutor Hillary Ryan
Ich hatte das gleiche problem,ich die JTextArea in eine JScrollPane, und legen Sie die bevorzugte Größe der JTextArea, und ich glaube, dass das die Ursache des Problems.
So die richtige Lösung ist, um die JTextArea in eine JScrollPane, und berühren Sie nicht die bevorzugte Größe der JTextArea, set JScrollPane statt.
InformationsquelleAutor MrVPlusOne
Gehen JTextArea "Eigenschaften" - Checkliste "lineWrap".
InformationsquelleAutor Arvy Dharmmaparayaandhika