Прежде всего, HyperlinkEvent запускается только на нередактируемом JEditorPane, поэтому пользователям будет сложно узнать, когда каретка находится над ссылкой.
Но если вы действительно хотите это сделать, вам следует использовать привязки клавиш (не KeyListener) для привязки действия к нажатию клавиши ENTER.
Один из способов сделать это - имитировать щелчок мышью, отправляя MouseEvent на панель редактора при нажатии клавиши Enter. Как то так:
class HyperlinkAction extends TextAction
{
public HyperlinkAction()
{
super("Hyperlink");
}
public void actionPerformed(ActionEvent ae)
{
JTextComponent component = getFocusedComponent();
HTMLDocument doc = (HTMLDocument)component.getDocument();
int position = component.getCaretPosition();
Element e = doc.getCharacterElement( position );
AttributeSet as = e.getAttributes();
AttributeSet anchor = (AttributeSet)as.getAttribute(HTML.Tag.A);
if (anchor != null)
{
try
{
Rectangle r = component.modelToView(position);
MouseEvent me = new MouseEvent(
component,
MouseEvent.MOUSE_CLICKED,
System.currentTimeMillis(),
InputEvent.BUTTON1_MASK,
r.x,
r.y,
1,
false);
component.dispatchEvent(me);
}
catch(BadLocationException ble) {}
}
}
}