リンクラベルについて

Javaにはリンクラベルを表すクラスはありません。リンクラベルを実装する方法はいくつかありますが、 ここでは普通のラベルにリンクを付ける方法を紹介します。

import java.awt.Desktop;
import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

import java.net.URI;

import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Sample {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setSize(300, 300);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        LinkLabel label = new LinkLabel("http://javagui.bufsiz.jp/");
        
        f.getContentPane().add(label);
        
        f.setVisible(true);
    }
}

class LinkLabel extends JLabel {
    public LinkLabel(final String href) {
        super("<html><a href='" + href + "'>" + href + "</a>");
        setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                Desktop desktop = Desktop.getDesktop();
                try {
                    desktop.browse(new URI(href));
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });
    }
}