In Swing habe ich ein benutzerdefiniertes Dokument erstellt, das die Anzahl der Zeilen in einer TextArea bestimmen und begrenzen konnte, ob eine Zeile umgebrochen wurde oder ein Zeilenvorschub gedrückt wurde. Ich hatte gehofft, etwas ähnliches in FX zu finden, aber ich konnte es nicht. Irgendwelche Vorschläge, wie mit der Begrenzung der Anzahl der erlaubten Zeilen umzugehen ist?JavaFX - TextArea Zeilen begrenzen?
Edit: So versuchte ich herauszufinden, wie viele umhüllte Zeilen in der TextArea sind. Das größte Problem besteht darin, die genaue Breite in die setWrappingWidth zu übertragen, da der TextArea-Inhalt anscheinend mit Grenzen gefüllt ist.
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 wahr gesetzt? Auch Textarea respektiert seinen Bereich, so dass es versucht, es zu füllen, es sei denn, Sie begrenzen es mit maxsize oder etwas – Elltz
Soweit ich weiß SetFrefRowCount und setPrefColCount nur Faktor in die bevorzugte Größe der TextArea und nicht den Inhalt zu begrenzen. – Tommo
Das ergibt überhaupt keinen Sinn. Sie können nicht erwarten, dass die Linien während Sie e begrenzt sind. G. mache das Textfeld kleiner. Es ist ein Albtraum der Benutzerfreundlichkeit. Was ist der Anwendungsfall dafür? – Roland