2016-10-15 2 views
-2

Я создаю текстовый редактор и хочу подсчитать выбранные строки, как на изображении ниже.JTextArea - подсчет выбранных строк

Это интерфейс, который я создал до сих пор.

enter image description here

Например, если выбраны эти две строки, я нужен способ, чтобы сохранить количество выбранных линий (2 в данном случае) в переменную. Есть ли способ сделать это?

Если вам нужна какая-либо часть кода для просмотра, я добавлю.

+0

, который не близок к тому, что я предложил !!! Я предложил вычесть «номера строк», а не начальные/конечные смещения выбранного текста. Где вы модифицировали метод в прошлом в «смещении». – camickr

+2

* «JTextField подсчитывает выбранные строки» * Текстовое поле имеет только одну строку, поэтому количество строк, которые имеют все или частично избранные, будет равно 0 или 1. Я ожидаю, что вы на самом деле означали «JTextArea», но ожидания может быть превращено в знание, если [mcve] отправлен. Пожалуйста, опубликуйте MCVE в будущем questiosn. –

+0

@AndrewThompson проверить титул снова, пожалуйста, он говорит «JTextArea», а не «JTextField» – Linksx

ответ

3

Проверьте метод getLineAtCaret() на Text Utilities. Это получит номер строки в карете (что здесь не поможет).

Итак, вам нужно будет изменить код, чтобы получить смещение в качестве параметра. Затем вы можете передать значения getSelectionStart() и getSelectionEnd() текстового компонента и использовать эти значения для возврата номера строки. Затем, как только вы знаете номер строки каждого из них, вы можете вычесть номер стартовой строки из номера конечной строки, чтобы указать количество выбранных строк.

Вы также можете просмотреть запись блога Text Component Line Number для компонента номера строки, который будет использоваться для редактирования.

+0

Я думал о том, как реализовать то, что вы сказали, и я думаю, что нашел способ. Пожалуйста, вы можете проверить РЕДАКТИРОВАТЬ его, чтобы убедиться, что это правильный путь? Поскольку большинство раз я получаю нужное количество строк, но иногда я получаю неправильное значение, например, если я выбираю 4 строки, он говорит, что я выбрал 3 или 5 строк, но не всегда. – Linksx

Смежные вопросы