JavaFX - Limit TextArea-Zeilen?

In Swing erstellte ich eine benutzerdefinierte Dokument, das in der Lage war, zu bestimmen und begrenzen Sie die Anzahl der Zeilen in einer TextArea, ob eine Zeile wurde umgebrochen, oder ein line feed gedrückt wurde. Ich hatte gehofft, etwas zu finden, ähnlich wie im FX, aber nicht in der Lage zu. Anregungen für den Umgang mit Begrenzung der Anzahl von Zeilen erlaubt?

Edit: Dies ist, wie ich, war der Versuch, herauszufinden, wie viele umbrochenen Zeilen in die TextArea. Das größte Problem ist immer die genaue Breite Durchgang in die setWrappingWidth da scheint es einige Polsterung an den TextArea-Inhalt zusammen mit den Grenzen.

Text helper = new Text();
helper.setText(text);
helper.setFont(getFont());
helper.wrappingWidthProperty().bind(widthBinding);
Font font = getFont();
FontMetrics fontMetrics = Toolkit.getToolkit().getFontLoader().getFontMetrics(font);
int preferredHeight = new Double(helper.getLayoutBounds().getHeight()).intValue();
int lineHeight = new Double(fontMetrics.getMaxAscent() + fontMetrics.getMaxDescent()).intValue();
System.err.println("preferredHeight /lineHeight: " + preferredHeight / lineHeight);
return preferredHeight / lineHeight;
  • nicht .setPrefRowCount(10); Arbeit? mit wrapText auf true gesetzt? auch textarea respektiert Ihre Umgebung, so dass er es versucht, um es zu füllen, es sei denn, Sie beschränken es mit maxsize oder so
  • Soweit ich weiß setPrefRowCount und setPrefColCount einzige Faktor, der in die bevorzugte Größe der TextArea und nicht die Begrenzung der Inhalte.
  • Dies macht keinen Sinn. Sie können nicht erwarten, dass die Linien begrenzt, während Sie e. g. machen die textarea kleiner. Es ist ein usability-Alptraum. Was ist der Anwendungsfall?
  • Die Größe ändert sich nicht. Sagen Sie eine TextArea definiert ist, mit 10 Zeilen und 40 Spalten. Die bevorzugte Größe ist festgelegt und ändert sich nicht, aber in bestimmten Situationen möchte ich begrenzen Sie den text auf 400 Zeichen und/oder 10 Linien. Der Text-Knoten verwendet wurde, die als Helfer zum ermitteln der aktuellen bevorzugte Größe, um herauszufinden, wie viele umbrochenen Zeilen sind derzeit im Bereich (da Zeilenumbrüche sind nicht vorhanden, wenn eine Zeile umbricht). Sorry für jede Verwirrung, die ich ve wurde Weg von meinem computer und versuchen zu halten auf meinem Handy.
  • Also, wenn Sie die 400 Zeichen, die ersten 10 Zeichen als line-feeds, die Sie nur wollen, um die 10 line-feeds im Fall der Textbereich ist geschrumpft auf eine 1 Zeichen Spaltenbreite? Noch nicht sinnvoll zu begrenzen, indem Sie die Anzahl der Zeilen statt der Begrenzung durch die Anzahl der Zeichen.
  • Wir umschreiben unsere GUI von Swing und FX, was ein großer Prozess. Das Ziel war, nicht auch ändern, jedem unserer Server-Seite code. Wir hatten vorher eine Anzahl der Texteingabefelder im Gange waren, sagen wir 3 Zeilen 40 oder 5 Zeilen 40, die nicht zulassen, dass der Textfluss (also ein line feed war erforderlich, um auf die neue Linie). Der Server code würde dann splitten Sie den text auf der line-feeds geben Sie in das 3x40-oder 5x40 Datenbank-Felder. Beim wickeln ist eingeschaltet, es macht es schwieriger, zu bestimmen, wie viele Zeilen vorhanden sind, in das Feld ein und beschränken Sie die Eingabe. Auch die Breite/Höhe ist nie schrumpfen.

InformationsquelleAutor Tommo | 2015-07-02
Schreibe einen Kommentar