我想使用该类而不是调用JComponent setToolTipText方法而是代码 下面没有显示工具提示:
JButton btn = new JButtn("SAVE");
JToolTip tip_for_button = new JToolTip();
tip_for_button.setTipText("blah blah");
tip_for_button.setComponent(btn);
为什么?
答案 0 :(得分:3)
好吧,因为实际捕获鼠标事件并显示工具提示的所有代码都在ToolTipManager
中(此类的实例是单例,在应用程序中是唯一的),而ToolTipManager
始终调用{确定要显示的工具提示时,组件上的{1}}方法。因此,如果您想使用自己的工具提示,则必须覆盖此方法并编写如下内容:
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");
是必需的,或工具提示不会显示,传递给它的文本始终设置为Component创建的工具提示,因此如果您需要不可变文本,则覆盖setToolTipText
。
答案 1 :(得分:1)
您可能需要调用setToolTipText()。有关详细信息,请参阅http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/components/tooltip.html。
答案 2 :(得分:0)
什么是tip_for_button
?为了使其正常工作,我非常确定tip_for_button
需要tip