栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

向JTextPane添加工具提示

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

向JTextPane添加工具提示

好问题。

First Swing支持HTML,因此要显示带有链接的工具提示,您只需说:

comp.setToolTipText("<html><ahref='http://www.google.com'>google</a></html>");

问题是使此工具提示可单击。

不幸的是,它不是由Swing本身完成的。

工具提示由ToolTipManager创建。当您调用setToolTipText()时,Jcomponent将其自身的实例添加到负责显示工具提示的Tooltip管理器的共享实例中(使用

show()
无法覆盖的方法。您也不能更改Tooltip管理器本身。

因此,我建议的最佳解决方案是执行以下操作。您可以使用以下方法收听AWT事件

Toolkit.getDefaultToolkit().addAWTEventListener()

因此,在显示工具提示时将其捕获,发现并在其上添加鼠标侦听器。此鼠标侦听器将使工具提示本身可单击。

这是我刚写的练习。您可以将其用作参考。祝好运。

    public static void main(String[] args) throws InterruptedException, InvocationTargetException {        final Jframe f = new Jframe("test");        f.setSize(100, 100);        JLabel l = new JLabel("<html><a href='http://www.google.com'>google</a></html>");        l.setToolTipText("<html><a href='http://www.google.com'>google</a></html>");        long mask = AWTEvent.COMPONENT_EVENT_MASK |//      AWTEvent.CONTAINER_EVENT_MASK |//      AWTEvent.FOCUS_EVENT_MASK |//      AWTEvent.KEY_EVENT_MASK |//      AWTEvent.MOUSE_EVENT_MASK |//      AWTEvent.MOUSE_MOTION_EVENT_MASK |        AWTEvent.WINDOW_EVENT_MASK |        AWTEvent.ACTION_EVENT_MASK |        AWTEvent.ADJUSTMENT_EVENT_MASK |        AWTEvent.ITEM_EVENT_MASK |        AWTEvent.TEXT_EVENT_MASK;        Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { @Override public void eventDispatched(AWTEvent event) {     int id = event.getID();     Object source = event.getSource();     if (id == 101 && source instanceof JToolTip) {         JToolTip tooltip = (JToolTip)source;         //System.out.println("" + event.getID() + " " + event.getSource());     } }        }, mask);        f.add(l);        f.setVisible(true);    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号