Swing中的花哨工具提示

时间:2011-08-19 19:49:13

标签: swing jtable tooltip jtextarea

我有一个JTable,我想为列中的特定单元格显示一个花哨的工具提示(基本上是一个JTextArea)。我正在使用自定义单元格渲染器,因此当我将鼠标悬停在单元格渲染器的组件上时,如果能够弄清楚如何弹出窗口,这将很容易。

有没有如何做到这一点的例子?

2 个答案:

答案 0 :(得分:4)

如果您在内容周围使用<html></html>标记,则可以use HTML in tooltips

使用HTML格式化工具提示。使用彩色(<font>)和多行(<br>)工具提示现在很容易。


创建和覆盖默认的JToolTip有点困难。每个组件都有一个JToolTip实例,您可以使用JComponent.createToolTip()检索此实例。要创建自定义工具提示,请扩展cell renderer并覆盖它createToolTip以实现自定义功能(返回JToolTip的自定义扩展版本。)

答案 1 :(得分:3)

我不确定我是否完全清楚你希望做什么样的定制,所以我会在这里一般。

有一个类UIManager,用于控制组件的外观,包括swing ToolTip类。进行简单更改的简单方法是在UIManager中调用方法来设置工具提示的属性。这样做你可以做一些事情,比如使用BorderFactory来添加装饰边框,或者改变背景颜色等。

以下是更改其中一些属性的一些示例:

UIManager.put("ToolTip.background", new ColorUIResource(255, 247, 200)); // The color is #fff7c8.
Border border = BorderFactory.createLineBorder(new Color(76,79,83)); // The color is #4c4f53.
UIManager.put("ToolTip.border", border);
ToolTipManager.sharedInstance().setDismissDelay(15000);// 15 seconds    

如果您想更改大量关于其外观和感觉的内容,最好使用实现自定义工具提示外观的类来扩展您当前的外观。其中full example可以在此博客文章中找到前Sun开发人员。

您可能还会在工具提示上查看how to set the insets上的此Stack Overflow问题。