Обтекание текста перезаписывает форматирование TextArea в Eclipse IDE - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время я использую Java GridBagLayout для создания графического интерфейса с TextAreas.Чтобы гарантировать, что графический интерфейс выглядит одинаково на экране, я решил отформатировать TextAreas с определенной высотой строки и столбца и использовать TextWrap, чтобы обернуть строки в указанных областях, чтобы он выглядел хорошо.Вот пример кода ниже:

 JFrame appFrame = new JFrame();
 appFrame.setTitle("My App");

 JTextArea nameArea;
 nameArea = new JTextArea(20, 20);
 nameArea.setText("Name: Orca" + "\n" + 
    "Other Names: Killer Whale" + "\n" +
    "Scientific Name: Orcinus orca " +
    "(Greek for kingdom of the dead " + "\n" + 
    "and/or belonging to the kingdom of Orcus)");
nameArea.setEditable(false);
nameArea.setLineWrap(true);
nameArea.setWrapStyleWord(true);
appFrame.add(nameArea);

appFrame.setVisible(true);
appFrame.pack();
appFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Прямо сейчас я намеренно делаю TextArea больше, чем нужно для целей тестирования - в готовом GUI эта TextArea, скорее всего, будет иметь размер в5, 15. Это одна из трех областей TextArea, которые у меня есть в этом проекте прямо сейчас, но кодирование для каждого идентично, за исключением изменений в строках, которые отображает каждая.

Проблема возникает, когда для любых атрибутов переноса текста установлено значение true.Он игнорирует заданную высоту строки и столбца и сжимает TextAreas в то, что, как я считаю, имеет максимум 6 столбцов в ширину.Количество строк, кажется, зависит от размера содержащихся строк.Я пытался использовать различные методы обтекания, такие как setLineWrap и setWrapStyleWord как по отдельности, так и в тандеме. Ссылка на изображение, показывающее сжатые текстовые области, используя приведенный выше код

Я точно не знаю, в чем заключается проблема в моем коде.Я проверил, чтобы Eclipse и Java были полностью обновлены, и они есть.Я также проверил, чтобы убедиться, что я случайно не удалил файл JAR где-то по пути, и у меня, кажется, есть все из них.Ни мой профессор, ни я не понимаю, почему программа ведет себя так, поэтому любая оценка будет принята с благодарностью.

Редактировать 1

Одна текстовая область, отображающая строку «ЗДЕСЬ ИЗОБРАЖЕНИЯ», в конечном итоге будет заменена изображением.Я просто сейчас использую TextArea в качестве заполнителя

Редактировать 2

Этот код я использую для ограничения текстовых областей на фрейм

GridbagConstraints layout = new GridBagConstraints();
appFrame.layout = JFrame(new GridBagLayout());

layout.gridx = 0;
layout.gridy = 0;
layout.weightx = .5;
layout.weighty = .5
layout.anchor = GridBagConstraints.NORTHWEST;
layout.insets = new Insets(10, 10, 10, 10);
appFrame.add(nameArea, layout);
...