Ну, потому что весь код, который на самом деле ловит событие мыши и показывает всплывающую подсказку, находится в ToolTipManager
(экземпляр этого класса - singleton, уникальный в приложении), а 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
является обязательным, иначе подсказка не будет отображаться, и текст, переданный ейвсегда устанавливайте подсказку, созданную Компонентом, поэтому, если вы хотите неизменный текст, вы переопределяете JToolTip.getTipText()
.