if (target != null) {
// target 上でのマウスイベントに変換
MouseEvent event = SwingUtilities.convertMouseEvent((JPanel)e.getSource(), e, target);
// 実際の位置に変換
event.translatePoint(head.x - viewPos.x, head.y - viewPos.y);
// target に対して event 発行
target.dispatchEvent(event);
// viewPosition がずれることがあるので補正
SwingUtilities.invokeLater(new Runnable(){
@Override