我想在我的swing组件中添加多行工具提示消息。基本的解决方案是使用这样的html标签:
label.setToolTipText("<html><p width=\"350px\">" + text + "</p></html>");
使用长文本可以正常工作。但是,如果文本,我们说,只包含一个单词,它也将固定350px宽度,并留有大量空白空间。
max-width是否有任何特殊的html属性可以使用setToolTipText()方法正常工作? 我尝试了下一个解决方案,但它不起作用:
"<p style=\"max-width: 350px\">"
如果宽度小于350像素,我应该以像素计算文字宽度并更改开始<p>
标记吗?
答案 0 :(得分:0)
以下代码将动态设置工具提示的大小。
如果是单个单词,它将根据文本的像素大小设置大小。 (将没有空白空间)。如果是大段落,它将最大扩展到350像素,并以多行显示文本。
FontMetrics fontMetrics = label.getFontMetrics(label.getFont());
int length = fontMetrics.stringWidth(text);
label.setToolTipText("<html><p width=\"" + (length > 350 ? 350 : length) + "px\">" + text + "</p></html>\"");
Screenshot - Tooltip: Single word
答案 1 :(得分:0)
您应该使用<br/>
标记向下一行,如下所示:
JButton button = new JButton("click me");
button.setToolTipText("<html>multy-line<br/>tool-tip</html>");
答案 2 :(得分:0)
我喜欢用 self.tabBarController?.tabBar.items![0].image = UIImage(named: "your image name")
// items![0] index of your tab bar item.items![0] means tabbar first item
self.tabBarController?.tabBar.items![0].selectedImage = UIImage(named: "your image name")
包裹工具提示文本的想法,但一些建议的解决方案有各种问题,最常见的是:1) 总是使用任意宽度,2) 使用整个长度文本,以及 3) 使用错误的字体来计算所需的宽度。我提供以下解决这些问题的方案。
<html><p width 350px>text</html>
}
答案 3 :(得分:-2)
我建议如下:
设置固定宽度后,您可以使用以下方法获取首选大小:
Dimension d = someToolTip.getPreferredSize();
if (d.width < 350) {
// Insert code to make tooltip-size smaller, by setting it to d.width;
}