1
我正在嘗試將不可編輯的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