• title: JToolTipの表示位置 tags: [JToolTip, JWindow, MouseListener, MouseMotionListener] author: aterai pubdate: 2010-05-03T22:32:22+09:00 description: JToolTipの表示位置がドラッグでマウスカーソルに追従するように設定します。

概要

JToolTipの表示位置がドラッグでマウスカーソルに追従するように設定します。

サンプルコード

@Override public void mouseDragged(MouseEvent me) {
  JComponent c = (JComponent) me.getSource();
  Point p = me.getPoint();
  if (SwingUtilities.isLeftMouseButton(me)) {
    tip.setTipText(String.format("Window(x,y)=(%4d,%4d)", p.x, p.y));
    //tip.revalidate();
    tip.repaint();
    //window.pack();
    window.setLocation(getToolTipLocation(me));
  } else {
    if (popup != null) {
      popup.hide();
    }
    tip.setTipText(String.format("Popup(x,y)=(%d,%d)", p.x, p.y));
    p = getToolTipLocation(me);
    popup = factory.getPopup(c, tip, p.x, p.y);
    popup.show();
  }
}
View in GitHub: Java, Kotlin

解説

  • 左クリックしてドラッグ
    • JWindowに、JToolTipを追加して、Window#setLocation()で移動
  • 左クリック以外でドラッグ
    • PopupFactory#getPopup()で座標を指定した、Popupを取得し表示

参考リンク

コメント