текст выходит из JTextArea, хотя перенос включен - PullRequest
0 голосов
/ 18 июня 2020

Проблема: включение переноса в JTextArea должно переносить строку; но иногда это не удается.

Ожидание: «ghijjj» переносится на следующую строку.

Что происходит вместо:

JTextArea не будет оборачивать "ghijjj", вместо этого он едва показывает 'g', а 'hijjj' будет за пределами экрана (область просмотра).

Подробности :

Среда выполнения OpenJDK AdoptOpenJDK (сборка 11.0.7 + 10)

ОС: Windows 10 v 1909

SSCCE:

import javax.swing.*;
import java.awt.*;
public class ScrollableTextArea {
    public static void main(String[] args) {
        JFrame frame = new JFrame("JTextArea");
        frame.setLayout(new FlowLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setSize(400, 300); //edit:per suggesstion
        JTextArea bodyArea = new JTextArea(10, 30);
        bodyArea.setLineWrap(true);
        bodyArea.setWrapStyleWord(true);
        JScrollPane bodyScroller = new JScrollPane(bodyArea);
        bodyScroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        frame.add(bodyScroller);
        bodyArea.setText("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa b c d e f ghijjj");

        frame.pack(); // edit:per suggesstion
        frame.setVisible(true);
    }
}

Визуально :

text going out of JTextArea

Я попытался добавить границы, думая, что проблема связана с JScrollPane, но это не так. Так это ошибка связана с алгоритмом переноса слов, который использует JTextArea? А может проблема с Java на Windows? И есть ли какое-нибудь решение?

ОБНОВЛЕНИЯ :

  • Он отлично работает в Java (TM) SE Runtime Environment (сборка 1.8.0_251-b08) (хотя окно и размер шрифта меньше, чем в JDK11)
...