Pau*_*lin 144
如果包裹在工具提示<html>和</html>标签,你可以打破与线<br>标记.有关示例和讨论,请参见http://www.jguru.com/faq/view.jsp?EID=10653.
或者您可以使用可以在网上找到许多地方的JMultiLineToolTip类,包括 https://github.com/ls-cwi/yoshiko-app/blob/master/src/main/java/com/yoshiko/internal/视图/ JMultiLineToolTip.java
Tom*_*ine 24
以" <html>" 开头的工具提示文本将被视为HTML.当然,这可能是非常宽的HTML.
您可以覆盖JComponent.createTooltip以将工具提示替换为您自己的组件,该组件可以显示您喜欢的whatevee.
小智 19
我知道这个很老了,但我找到了一个使用HTML代码的简单解决方案!
只需使用固定宽度的HTML段落:
setToolTipText("<html><p width=\"500\">" +value+"</p></html>");
Run Code Online (Sandbox Code Playgroud)
使用HTML工具提示并手动断行(具有固定行长度的简单单词标记器应该这样做).只需确保您的tooltop文本以"<HTML>"开头即可.用"<BR/>"或"<P>"分隔行.我意识到这不是最干净的解决方案,Java的HTML支持是可怕的,但它应该完成任务.
例子:
jTextField1.setToolTipText("<html>"
+ "Line One"
+"<br>"
+ "Line 2"
+ "</html>");
Run Code Online (Sandbox Code Playgroud)
这可以有所改进,但我的方法是在设置工具提示之前调用一个辅助函数,该函数以提供的长度拆分工具提示文本,但调整为在可能的情况下在空格上打断单词。
import java.util.ArrayList;
import java.util.List;
/**
*
*/
public class MultiLineTooltips
{
private static int DIALOG_TOOLTIP_MAX_SIZE = 75;
private static final int SPACE_BUFFER = 10;
public static String splitToolTip(String tip)
{
return splitToolTip(tip,DIALOG_TOOLTIP_MAX_SIZE);
}
public static String splitToolTip(String tip,int length)
{
if(tip.length()<=length + SPACE_BUFFER )
{
return tip;
}
List<String> parts = new ArrayList<>();
int maxLength = 0;
String overLong = tip.substring(0, length + SPACE_BUFFER);
int lastSpace = overLong.lastIndexOf(' ');
if(lastSpace >= length)
{
parts.add(tip.substring(0,lastSpace));
maxLength = lastSpace;
}
else
{
parts.add(tip.substring(0,length));
maxLength = length;
}
while(maxLength < tip.length())
{
if(maxLength + length < tip.length())
{
parts.add(tip.substring(maxLength, maxLength + length));
maxLength+=maxLength+length;
}
else
{
parts.add(tip.substring(maxLength));
break;
}
}
StringBuilder sb = new StringBuilder("<html>");
for(int i=0;i<parts.size() - 1;i++)
{
sb.append(parts.get(i)+"<br>");
}
sb.append(parts.get(parts.size() - 1));
sb.append(("</html>"));
return sb.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
使用喜欢
jComponent.setToolTipText(MultiLineTooltips.splitToolTip(TOOLTIP));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57523 次 |
| 最近记录: |