Запись многострочного JTextArea в текстовый файл - PullRequest
4 голосов
/ 04 октября 2011

, поэтому у меня есть JTextArea для ввода данных пользователем, а затем, когда они нажимают кнопку, он записывает его в текстовый файл, и у меня setLineWrap и setWrapStyleWord установлено значение true для JTextArea.

Я хотел бы записать в текстовый файл то, как он выглядит в текстовом поле.

Я попытался сделать replace("\n", System.getProperty("line.separator")) на String, содержащем содержимое JTextArea, которое работает, но только если пользователь действительно нажимает клавишу возврата при вводе, но если пользователь просто продолжает набирать и попадает в конец строки, поэтому он переходит на строку под ней, replace не работает.

Я также пытался использовать StringBuffer, я рассчитал, сколько символов поместится в строке, а затем набрал for loop inserting новых строк в конце каждой строки, поэтому для первой строки я бы добавил его в позиции 90, 2-я строка в 180, третья в 270 и т. д. Но вскоре я понял, что это работает не во всех ситуациях, потому что некоторые символы меньше, чем другие, например, вы можете разместить больше j в одной строке, чем p.

То, что я хотел бы сделать, это просто найти способ рассчитать конец строки, чтобы я знал, где insert новая строка, но я также открыт для других предложений. Благодарю. Если вы думаете, что это поможет увидеть часть моего кода, просто спросите.

Обновление Вместо того, чтобы реализовывать код для этого, я поговорил с человеком, который будет в значительной степени единственным из людей, использующих эту программу, и он был в порядке с обычным форматом блокнота, и я не осознавал этого, но пока он проверял wordWrap в своем блокноте настройки формата, что избавит его от необходимости использовать боковую прокрутку, чтобы прочитать всю строку, спасибо за ваш ввод

Ответы [ 2 ]

5 голосов
/ 04 октября 2011

Использование Utilities класс

public static final int getRowStart(JTextComponent c, int offs)
public static final int getRowEnd(JTextComponent c, int offs)

вы передаете смещение и получаете смещение начала и конца строки

1 голос
/ 04 октября 2011

Я не понимаю, как это сделать, кроме как просто рассчитать длину слова, используя метрики шрифта, и сделать то, что текстовая область уже делает.

Какова цель этого?

...