在JLabel 中创建超链接

zengxx1989 2009-05-15
final JLabel lblUrl = new JLabel();
lblUrl.setBounds(484, 38, 66, 18);

lblUrl.setText("<html><a href='www.hao123.com'>www.hao123.com</a>");

lblUrl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

lblUrl.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
Desktop desktop=Desktop.getDesktop();
try {
desktop.browse(new URI("www.hao123.com"));
} catch (IOException e1) {
e1.printStackTrace();
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}



});
这里已经实现了,但是如果在这个JLabel 中值是动态的呢,怎样改变new URI中的值呀?
fralepg 2009-05-18
你可以直接将lblUrl设置字体效果和字体颜色,不使用html代码,这样uri可以直接从lblUrl.getText()取得,加个手型指针效果更好,或者使用html代码时保存你的uri呀?
uyt 2009-06-12
如果你经常要用到的话,写个类或者函数把String封装合并,重写toString
其实你这句话就是www.hao123.com要改,写个类然后用toString来new一个JLabel
"<html><a href='www.hao123.com'>www.hao123.com</a>"

或者用setText();

要取值时,用getText就可以了,或者直接取你重写的类
Global site tag (gtag.js) - Google Analytics