Я искал способ выделить выделенную строку в JTextArea. Есть много сообщений о том, как выделить текст в JTextArea, но он доходит только до буквы. Я хочу иметь возможность выделить всю строку (так же, как редактор eclipse выделяет всю текущую строку, на которой вы находитесь, когда вы нажимаете на строку). Все, что я нашел, указывают на объект Highlighter, но я не уверен, что это подчеркнет несимвольную область JTextArea. Кроме того, есть ли способ найти, что выбрана в JTextArea? Не столько строк, сколько выбранных (например, кто-то нажимает на предыдущую точку). Или это очень сложный процесс для расчета?Выделение выделенной строки в JTextArea
1
A
ответ
5
Вам необходимо включить слоистые блики от:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
public class SSCCE extends JPanel
{
public SSCCE()
{
JTextArea textArea = new JTextArea(4, 30);
textArea.setText("one\ntwo\nthree");
add(new JScrollPane(textArea));
DefaultHighlighter highlighter = (DefaultHighlighter)textArea.getHighlighter();
DefaultHighlighter.DefaultHighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
highlighter.setDrawsLayeredHighlights(false); // this is the key line
try
{
int start = textArea.getLineStartOffset(1);
int end = textArea.getLineEndOffset(1);
highlighter.addHighlight(start, end, painter);
}
catch(Exception e)
{
System.out.println(e);
}
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("SSCCE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new SSCCE());
frame.setLocationByPlatform(true);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(() -> createAndShowGUI());
/*
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
*/
}
}
Вы также можете проверить Line Painter класс, который будет выделить текущую строку, как каретка перемещается. Таким образом, этот класс будет управлять подсветкой. То есть, когда каретка перемещается из строки в строку, предыдущая подсветка удаляется и добавляется новая подсветка.
Смежные вопросы
- 1. Выделение выделенной строки WPF
- 2. NSTableView выделение выделенной строки
- 3. Выделение выделенной строки GridView
- 4. Выделение выделенной строки в ComponentView?
- 5. JavaFX8 - Удалить выделение выделенной строки
- 6. Как установить выделение выделенной строки в JqGrid
- 7. Удалить выделение выделенной строки в jqGrid
- 8. Выделение уже выделенной памяти
- 9. CSS - выделение выделенной вкладки
- 10. VBA Выделение выделенной строки приводит к выбору всей строки
- 11. iPhone SDK - выделение выделенной ячейки в TableView
- 12. Выбор/выделение текста в JTextArea, принадлежащем JOptionPane
- 13. Как предотвратить выделение выделенной области выделения excel
- 14. Solr подсветка - требуется выделение выделенной фразы
- 15. jcrop - как остановить выделение выделенной области
- 16. Удалить строки в JTextArea
- 17. Перемещение выделенной строки
- 18. JTable: Нет выделенной строки
- 19. JTable .. цвет выделенной строки
- 20. Нокаут Удаление выделенной строки
- 21. Печать строки, выделенной курсивом
- 22. Используйте кнопку для редактирования выделенной/выделенной строки в виде таблицы
- 23. JTextArea Хранение каждой строки
- 24. Как сканировать строки JTextArea?
- 25. Выделение строки в javascript
- 26. Выделение строки в стеке
- 27. JTextArea получение всей строки
- 28. Использование strtok() для выделенной строки?
- 29. Прокрутите до выделенной строки GridView
- 30. Kendo UI Сетка выделенной строки