Я пытаюсь работать с редактируемым JTextArea, добавленным в JScrollPane. Я хочу, чтобы строка была выделена, когда пользователь нажимает на эту конкретную строку. Я мог бы реализовать эту часть, используя следующий код:JTextArea - выделять текст при прокрутке вверх или вниз
public static void initHighlightOption(final JTextArea textArea){
textArea.setFont(new Font("Courier New", Font.PLAIN, 12));
textArea.setEditable(false);
final Action selectLine = getAction(textArea, DefaultEditorKit.selectLineAction);
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 1) {
selectLine.actionPerformed(null);
}
});
textArea.setSelectionStart(0);
textArea.setSelectionEnd(0);
}
public static Action getAction(JTextArea textArea, String name) {
Action action = null;
Action[] actions = textArea.getActions();
for (int i = 0; i < actions.length; i++) {
if (name.equals(actions[i].getValue(Action.NAME).toString())) {
action = actions[i];
break;
}
}
return action;
}
То, что я хочу добавить, что когда-то строка подсвечивается и пользователь прокручивает вверх/вниз с помощью клавиатуры вверх/вниз ключ, я хочу, чтобы текущая строка будет выделена , Возможно ли это, добавив keyListener? Я зациклился на том, как выделяются данные во время прокрутки.
Текстовая область содержит данные, как это:
Line1
Line2
Line3
Line4
Line5
(т.е. там могут быть новые линии между двумя конкретными линиями данных)
Спасибо @george_h, это хорошее начало для того, чего я пытаюсь достичь. – Sujay