Swing offre il supporto "di serie" del HTML per tutti componenti che mostrano del testo (JLabel, JButton e altri). Basta che il testo inizi con "<html>" e Swing lo riconosce come inizio di markup HTML. Tra l'altro NON è nemmeno necessario che termini con </html> anche se male non gli fa, se c'è. Insomma, il parsing è blando per <html>
Ovviamente è HTML molto ristretto, se ben ricordo al massimo HTML 3.2 (non ti aspettare HTML5 o altre meraviglie).
Basterebbe non mettere </html> al fondo e poi appendere codice markup HTML (possibilmente) valido.
Appunto, il tag <a> non funziona come "vero" link nei componenti come JLabel, JButton ecc... Swing NON è certo un browser, non saprebbe che farci o che aprire.
JLabel non è fatto per gestire (normalmente/tipicamente) eventi ... è solo una etichetta. Si possono però gestire eventi a "basso" livello come quelli del mouse. Ma non sarebbe comunque una buona strada.
Valuta JEditorPane allora, è simile a JTextArea ma ha anche il supporto per HTML e RTF. Con HTML in JEditorPane, i tag <a> li puoi gestire ma devi implementare un HyperlinkListener e farci tu "qualcosa" (idem come prima, NON è un browser, non saprebbe che farci o aprire).
C'è un mio (vecchio) esempio EditorPaneHyperlinkClick.java qui.