请教:java的application里如何做超链接的效果?

aiur 2002-09-25 06:38:34
我有一个JTextArea,我想把里面的一部分String做成超链接的形式(可以设置颜色,鼠标移到上面会变成手的形状,点击会新开窗口),我该如何做?
请各位高手指教.
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
crm2000 2002-09-26
  • 打赏
  • 举报
回复
hehe,来领分的,多多努力。
WQmeng 2002-09-25
  • 打赏
  • 举报
回复
我觉得你应该自己去实现一个Document,并且为它加一个DocumentListener判断输入是否为你标记的String,并更新它的颜色,确定光标的显示。
bobosji 2002-09-25
  • 打赏
  • 举报
回复
自己去变通
bobosji 2002-09-25
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;

public class UrlLabel extends Label implements MouseListener // 监听鼠标动作
{
boolean drawLine = false; // 是否画线标志
public UrlLabel() // 如果参数为空,调用另一个构造器
{
this("");
}

public UrlLabel(String text) // 构造UrlLabel类
{
super(text); // 调用父类的构造器
addMouseListener(this); // 增加鼠标监听器
}

public void paint(Graphics g)
{
Rectangle r;
super.paint(g); // 由父类先处理显示文本
if(drawLine) // 如果是画线状态(说明鼠标在上方)
{
r = g.getClipBounds(); // 取字体边框范围
g.drawLine(0, r.height - this.getFontMetrics(this.getFont()).getDescent(),
this.getFontMetrics(this.getFont()).stringWidth(this.getText()),
r.height - this.getFontMetrics(this.getFont()).getDescent()); //在最下边画线
}
}

public void mouseEntered(MouseEvent e) // 鼠标进入事件
{
drawLine = true; // 允许画线
repaint();
}

public void mouseExited(MouseEvent e) //鼠标离开事件
{
drawLine = false; // 放弃画线
repaint();
}
public void mouseReleased(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){}

public void destory()
{
removeMouseListener(this); // 去掉监听
}
}
==========================================
测试程序代码:UrlLabelText .java
------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class UrlLabelText extends Applet
{
public void init()
{
UrlLabel urlLabel = new UrlLabel("UrlLabelText");
add(urlLabel);
}
}

62,616

社区成员

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

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