如何在一个GUI组件上添加超链接

oOnlyo 2006-08-24 05:28:34
如何在一个GUI组件上添加超链接,例如JLable上.
可不可以不HTML
...全文
297 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dushiluren 2006-08-30
  • 打赏
  • 举报
回复
他的isEntered是用来触发paintBorder方法的,画下划线
oOnlyo 2006-08-25
  • 打赏
  • 举报
回复
mq612(五斗米):
我将你的MyLable小修改了一下,能直当链接用了。但是只能用于windows下,ie是默认浏览器时。怎么样使它适用于各种平台,各种浏览器。
另外,你的isEntered 是干什么的?
代码:
public class MyLink extends JLabel implements MouseListener {
private boolean isEntered = false;
private String url=null;

public MyLink(String url) {
super();
this.url=url;
this.addMouseListener(this);
}

protected void paintBorder(Graphics g) {
int w = this.getSize().width;
int h = this.getSize().height;
if (isEntered) {
g.drawLine(0, h - 1, w - 1, h - 1);
}
}

public void mouseClicked(MouseEvent mouseEvent) {
try {
Runtime.getRuntime().exec(
"rundll32 url.dll,FileProtocolHandler "+url);
} catch (Exception e) {
e.printStackTrace();
}

}

public void mousePressed(MouseEvent mouseEvent) {
}

public void mouseReleased(MouseEvent mouseEvent) {
}

public void mouseEntered(MouseEvent mouseEvent) {
isEntered = true;
this.repaint();
this.setCursor(new Cursor(Cursor.HAND_CURSOR));
}

public void mouseExited(MouseEvent mouseEvent) {
isEntered = false;
this.repaint();
}
}
oOnlyo 2006-08-24
  • 打赏
  • 举报
回复
Runtime.getRuntime().exec(
"rundll32 url.dll,FileProtocolHandler http://www.163.com/");
能打开ie,但不联163.
为什么
zhmt 2006-08-24
  • 打赏
  • 举报
回复
路过,友情up...
mq612 2006-08-24
  • 打赏
  • 举报
回复
还可以在鼠标点击的事件中加上下面打开网页的代码
Runtime.getRuntime().exec("cmd/"+ htmPath); // 只适合Windows系统
mq612 2006-08-24
  • 打赏
  • 举报
回复
以前写的例子,你可以参考下:

http://community.csdn.net/Expert/topic/4858/4858937.xml?temp=.8753778

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧