「JAVA SWING HACK」という本のp307~を参考に虫めがねコンポーネントを作成.
書いてあるとおりにやれば,虫めがねコンポーネントができましたが
一部変更したほうがよさそうなとこがあったのでメモ書き.
例8-1のcomputeGrabRect()メソッドのリターン文を
return new Rectangle(point.x, point.y, grabWidth, grabHeight);
↓
return new Rectangle(point.x-mySize.width/(int)Math.round(zoom*2.0), point.y-mySize.height/(int)Math.round(zoom*2.0), grabWidth, grabHeight);
と変えると,マウス位置から右下へ引き伸ばされるように拡大されたのが,
マウス位置を中心に拡大されるようになります.
こっちのほうがきっと直感的.
書いてあるとおりにやれば,虫めがねコンポーネントができましたが
一部変更したほうがよさそうなとこがあったのでメモ書き.
例8-1のcomputeGrabRect()メソッドのリターン文を
return new Rectangle(point.x, point.y, grabWidth, grabHeight);
↓
return new Rectangle(point.x-mySize.width/(int)Math.round(zoom*2.0), point.y-mySize.height/(int)Math.round(zoom*2.0), grabWidth, grabHeight);
と変えると,マウス位置から右下へ引き伸ばされるように拡大されたのが,
マウス位置を中心に拡大されるようになります.
こっちのほうがきっと直感的.