Swing 中精美的工具提示

发布于 2024-11-30 15:06:49 字数 145 浏览 2 评论 0原文

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

有没有关于如何执行此操作的示例?

I have a JTable that I would like to display a fancy tooltip (basically a JTextArea) for particular cells in a column. I am using a custom cell renderer, so it would be easy if I could figure out how to popup a window when I hover over the cell renderer's component.

Are there any examples of how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

意中人 2024-12-07 15:06:49

如果您使用 标签。

使用 HTML 来设置工具提示的格式。现在可以轻松使用彩色 () 和多行 (
) 工具提示。


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

You can use HTML in tooltips, if you use the <html> and </html> tags around the content.

Use HTML to format the tooltip. Using colored (<font>) and multi-line (<br>) tooltips is now easy.


Creating and overwriting the default JToolTip is a bit harder. Every component has a JToolTip instance and you can retrieve this one with JComponent.createToolTip(). To create a custom tooltip, extend the cell renderer and override it's createToolTip to implement your custom functionality (return a custom extended version of JToolTip).

救赎№ 2024-12-07 15:06:49

我不确定我是否完全清楚您具体希望进行哪种自定义,因此我将在这里进行一般性说明。

有一个类 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    

如果您想更改有关外观和感觉的一大堆内容,最好使用实现自定义工具提示外观和感觉的类来扩展当前的外观和感觉。 完整示例可以在前 Sun 开发人员的这篇博文中找到。

您还可以在 上查看此 Stack Overflow 问题如何设置工具提示上的插图

I'm not sure I totally am clear on what sort of customizations specifically you're hoping to do, so I'll be general here.

There is a class, UIManager, that controls the look and feel of components, including the swing ToolTip class. The simple way to make an easy change is to call a method in UIManager to set properties for the tooltips. Doing this you could do things like use BorderFactory to add a decorative border, or change the background color, etc.

Here are some examples of changing some of these properties:

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    

If you want to change a whole bunch of things about their look and feel, it is better to extend your current look and feel with a class implementing custom tooltip look and feel. A full example of this can be found in this blog post by a former Sun developer.

You might also have a look at this Stack Overflow question on how to set the insets on a tooltip.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文