Почему getToolTipText никогда не вызывается? - PullRequest
4 голосов
/ 02 ноября 2009

У меня есть JComponent. Метод paintComponent переопределяется. Я упоминал, что всплывающие подсказки не были надежными. Иногда они были показаны, а иногда нет. Теперь я больше не вижу подсказок по этому компоненту. Я переписал getToolTipText (MouseEvent e), чтобы указать содержание всплывающих подсказок. Но методы getToolTipText () и getToolTipText (MouseEvent e) никогда не вызываются!

Что здесь может быть не так? Что я могу сделать, чтобы это исправить?

Ответы [ 4 ]

3 голосов
/ 29 ноября 2013

Вам необходимо зарегистрировать свой компонент в диспетчере всплывающих подсказок.

Реализация по умолчанию setToolTipText() сделает это за вас, но если вы хотите переопределить getToolTipText() вместо этого, вам нужно добавить эту строку где-то, IE, в конструкторе вашего компонента:

ToolTipManager.sharedInstance().registerComponent(this);
3 голосов
/ 02 ноября 2009

Полагаю, вам нужно будет позвонить ToolTipManager.registerComponent . По-видимому, это оптимизация.

0 голосов
/ 02 ноября 2009

Сначала вам нужно зарегистрироваться в TooltipManager через

TooltipManager.registerComponent()

Даже если это сработает, тогда

  1. Проверьте значение TooltipManager.getInitialDelay ()
  2. Проверьте значение TooltipManager.isEnabled ()
0 голосов
/ 02 ноября 2009

Вы установили всплывающую подсказку с помощью метода "setToolTipText (String)"?

Если всплывающая подсказка не установлена ​​(или не имеет значения «null»), то всплывающая подсказка не будет отображаться. (И я предлагаю, чтобы метод getToolTipText () не вызывался)

Эта ссылка может помочь вам с этой проблемой: Как использовать всплывающие подсказки

(извините за мой английский, я думаю, что он не самый лучший ,,, ;-))

...