Hi,
I want to make a JLAbel clickable. For example if a user click on the jlabel he is directed to some url like www.google.com.
Any help would be appreciated.
Thanks.
Hi,
I want to make a JLAbel clickable. For example if a user click on the jlabel he is directed to some url like www.google.com.
Any help would be appreciated.
Thanks.
wanted a JLabel that opens a URL when clicked. and pointed toward handling events — that is the right idea — but a simple, more robust approach is to use Swing's HTML-aware components (JEditorPane or JTextPane) with a HyperlinkListener. That keeps link rendering and activation separate from low-level mouse handling and gives you a true hyperlink behavior.
Here is a compact example using JEditorPane and the Desktop API to open the default browser:
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import java.awt.Desktop;
public class LinkDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Link demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JEditorPane editor = new JEditorPane("text/html",
"<html><body>Click <a href=\"https://example.com\">example.com</a></body></html>");
editor.setEditable(false);
editor.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
Desktop.getDesktop().browse(e.getURL().toURI());
} else {
Runtime.getRuntime().exec(new String[] {"xdg-open", e.getURL().toString()});
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
});
editor.setBorder(null);
frame.getContentPane().add(editor);
frame.setSize(320, 100);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
});
}
} Notes and troubleshooting:
Jump to Post— cretaros 0Research deeply on Focus Listeners and mouse Listeners.
check sun oracle.com for tutorials
add a MouseListener to your JLabel. Do what said for details
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.