W aplikacji Swing utworzyłem niestandardowy dokument, który był w stanie określić i ograniczyć liczbę wierszy w obszarze tekstowym, niezależnie od tego, czy linia była opakowana, czy został naciśnięty wiersz. Miałem nadzieję znaleźć coś podobnego w FX, ale nie byłem w stanie. Wszelkie sugestie dotyczące sposobu ograniczania liczby dozwolonych wierszy?JavaFX - Limit wierszy TextArea?
Edytuj: W ten sposób próbowałem dowiedzieć się, ile zawijanych wierszy znajduje się w obszarze TextArea. Największym problemem jest uzyskanie dokładnej szerokości, która przejdzie do setWrappingWidth, ponieważ wydaje się, że niektóre dopełnienie zawartości TextArea wraz z granicami.
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;
nie '.setPrefRowCount (10);' pracę? z ustawieniem wrapText na true? również textarea respektuje jego obszar, więc stara się go wypełnić, chyba że ograniczysz go do maxsize lub czegoś takiego – Elltz
Z tego co wiem setPrefRowCount i setPrefColCount uwzględniają tylko preferowany rozmiar TextArea i nie ograniczają zawartości. – Tommo
To nie ma żadnego sensu. Nie możesz oczekiwać, że linie będą ograniczone, podczas gdy ty. sol. sprawiają, że tekst jest mniejszy. To koszmar użyteczności. Jaki jest tego pożytek? – Roland