我想使用该类,而不是调用JComponent setToolTipText方法,而是代码
下面没有显示工具提示:
JButton btn = new JButtn("SAVE");
JToolTip tip_for_button = new JToolTip();
tip_for_button.setTipText("blah blah");
tip_for_button.setComponent(btn);
为什么?
最佳答案
好吧,因为实际上捕获鼠标事件并显示工具提示的所有代码都在ToolTipManager
中(此类的实例是单例,在应用程序中是唯一的),并且ToolTipManager
在确定时始终在组件上调用JComponent.createToolTip()
方法显示什么工具提示。因此,如果您想使用自己的工具提示,则必须重写此方法并编写如下内容:
JButton btn = new JButton("SAVE"){
public JToolTip createToolTip() {
JToolTip tip_for_button = new JToolTip(){
public String getTipText() {
return "blah blah";
}
};
tip_for_button.setComponent(this);
return tip_for_button;
}
};
btn.setToolTipText("notnull");
setToolTipText
是强制性的,否则将不显示工具提示,并且传递给它的文本始终设置为Component创建的工具提示,因此,如果要使用不可变的文本,请覆盖JToolTip.getTipText()
。关于java - 使用JToolTip,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3229714/