TITLE:MouseWheelで画像のズームイン・アウト表示

MouseWheelで画像のズームイン・アウト表示

編集者:Terai Atsuhiro
作成日:2006-10-16
更新日:2023-12-08 (金) 17:08:03

概要

マウスホイールなどで画像をズームイン、ズームアウトします。

#screenshot

サンプルコード

 class ZoomImage extends JComponent implements MouseWheelListener {
   private final ImageIcon icon;
   private final int iw;
   private final int ih;
   private double scale = 1.0d;
   public ZoomImage(final ImageIcon icon) {
     super();
     this.icon = icon;
     iw = icon.getIconWidth();
     ih = icon.getIconWidth();
     addMouseWheelListener(this);
   }
   public void paintComponent(Graphics g) {
     Graphics2D g2 = (Graphics2D) g;
     g2.scale(scale, scale);
     g2.drawImage(icon.getImage(), 0, 0, iw, ih, this);
   }
   public void mouseWheelMoved(MouseWheelEvent e) {
     changeScale(e.getWheelRotation());
   }
   public void initScale() {
     scale = 1.0d;
     repaint();
   }
   public void changeScale(int iv) {
     scale = Math.max(0.05d, Math.min(5.0d, scale-iv*0.05d));
     repaint();
   }
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルではホイールの上回転で拡大、下回転で縮小しています。

コメント