【Swing入门教程】一步一步做Netbeans(3):定制可显示多行的JToolTip

      Netbeans上大部分组件的标签提示都是单行的,想给按钮等设置标签提示直接用setToolTipText(String tip)即可。但如果要设置多行的标签提示怎么办,Netbeans上就有多行的标签提示,如下图示:

多行的JToolTip

      网上有人说用setToolTipText("<html>aaaa /br bbbbb </html>")可以,哈原来这么简单,试了下,纯粹扯淡。看了下JComponent源码,每个JComponent都默认带着一个JToolTip;当你看到JToolTip的javadoc时,Sun很明确的告诉你:需要创建自定义 ToolTip 显示的组件可以重写 JComponentcreateToolTip 方法,并使用此类的一个子类。

     方法:先自定义一个继承自JToolTip的MultiLineToolTip,对要实现多行提示的组件重写createToolTip()方法,在用setToolTipText(String tip)即可(多行用'/n'做分割);先看效果:

多行提示效果

MultiLineToolTip的实现

       这里需要自制JToolTip的L&F,将要显示的多行文字放入字符串数组内,计算显示面板的宽度高度,遍历数组将内容画到面板上即可:

TabButton类需要重写createToolTip()类:

将要显示的内容设置上:

搞定收工。

猜你喜欢

转载自blog.csdn.net/monitor1394/article/details/6210634