Usually when we want a label to be clickable, we just make it a button. I did recently use a Label instead of a button because I found it easier to control the appearance (no border around the icon) and I wanted the label to look different depending on some data that the application is showing. But I probably could have just done the whole thing with a JButton anyway.
If you want only part of your JLabel to be clickable, that gets more complicated. You would need to check the relative mouse coordinates when the mouse is clicked to see if it corresponds to the part of your label that you want to be clickable.
Alternatively, you might want to look at JEditorPane instead. This lets you place HTML into a swing app and then you can probably implement some HyperLinkListener.
But if you do need a label to fire an action, as you originally requested, you can add a mouselistener to it like this:
noteLabel = new JLabel("click me");
noteLabel.addMouseListener( new MouseAdapter() {
public void mousePressed(MouseEvent e) {
System.out.println("Do something");
}
public void mouseEntered(MouseEvent e) {
//You can change the appearance here to show a hover state
}
public void mouseExited(MouseEvent e) {
//Then change the appearance back to normal.
}
});