Как мне управлять отображением подсказки JComponent? - PullRequest
4 голосов
/ 12 ноября 2008

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 12 ноября 2008

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

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

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

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

1 голос
/ 11 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...