2008-11-12 5 views
4

У меня есть JComponent, который рисует различные формы на себе. Я обнаруживаю, когда мышь входит в одну из этих фигур и соответственно меняет подсказку.Как управлять отображением всплывающей подсказки JComponent?

Проблемы, которые я имею, являются:

  • Тултип не следует мыши, как пользователь отслеживает мышь через форму. Он остается там, где он был впервые установлен, а затем только прыгает, когда другая форма меняет всплывающую подсказку.
  • Для всплывающей подсказки требуется около секунды, но я хочу, чтобы она появилась сразу.

Может кто-нибудь предложить способ получить эти поведения без написания пользовательского инструмента всплывающей подсказки?

ответ

6

Посмотрите на ToolTipManager.

Вы можете зарегистрировать свой компонент с этим менеджером, а затем отрегулировать ряд настроек. Его довольно прямолинейно использовать.

Это, по крайней мере, может решить вашу проблему с начальным заданием.

Для вашей первой проблемы вы можете переопределить команду createTooltip из своего компонента, чтобы удержать экземпляр JTooltip. и тогда его легко изменить положение, всякий раз, когда вы перемещаете мышь (иначе следуйте мышью) в качестве своего подкласса класса JComponent.

1

Чтобы решить вашу первую проблему, когда подсказка не следует за мышью, если вы переопределите getToolTipLocation (MouseEvent e) в JComponent, вы можете вернуть точку, где вы хотите отобразить всплывающую подсказку. MouseEvent позволит вам получить x и y.

Смежные вопросы