1. tooltip 是作为Component的Skin的一部分,而不是控件的一部分。
2. 每个控件的tooltip都只有一个,对于ListView和TreeView也是一样。
3.tooltip默认实现是不能wrapText的。
如果要实现ListView或者TreeView的每个Item或者Node的toolTip都不一样时,需要重载实现getTooltipText
根据当前窗口的鼠标指针动态获取ListView和TreeView的Item或者Node提示内容。
例如下面是一个TreeView的重载的getTooltipText方法。每个Node的toolTip都不一样。
Point pt = getDisplay().getMouseLocation(); 获取当前鼠标的位置
pt = mapPointFromAncestor(getDisplay(), pt); 把相对于Display的位置坐标映射到treeView组件的坐标。
如果要实现可折叠或者是可显示换行的tooltip必须重载 组件的Skin,实现特定的tooltip。
下面的代码时修改自ComponentSkin的 显示tooltip的代码,使用TextArea是的可以折叠换行显示tooltip的内容: