diff --git a/Wrapping/Java/vtk/vtkCanvas.java b/Wrapping/Java/vtk/vtkCanvas.java
index 894a8aa..a44efba 100644
--- a/Wrapping/Java/vtk/vtkCanvas.java
+++ b/Wrapping/Java/vtk/vtkCanvas.java
@@ -4,7 +4,7 @@ import javax.swing.Timer;
 import java.awt.*;
 import java.awt.event.*;
 
-public class vtkCanvas extends vtkPanel implements MouseListener, MouseMotionListener, KeyListener
+public class vtkCanvas extends vtkPanel implements MouseListener, MouseMotionListener, KeyListener, MouseWheelListener
 {
   protected vtkGenericRenderWindowInteractor iren = new vtkGenericRenderWindowInteractor();
   protected Timer timer = new Timer(10, new DelayAction());
@@ -262,6 +262,22 @@ public class vtkCanvas extends vtkPanel implements MouseListener, MouseMotionLis
   
   public void keyReleased(KeyEvent e) {}
 
+  public void mouseWheelMoved(MouseWheelEvent e) 
+  {
+    ctrlPressed = (e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK ? 1:0;
+    shiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) == InputEvent.SHIFT_MASK ? 1:0;
+      
+    iren.SetEventInformationFlipY(e.getX(), e.getY(), ctrlPressed,
+                                  shiftPressed, '0', 0, "0");
+      
+    Lock();
+    if (e.getWheelRotation() > 0)
+      iren.MouseWheelBackwardEvent();
+    else
+      iren.MouseWheelForwardEvent();
+    UnLock();
+  }
+
   private class DelayAction implements ActionListener {
     public void actionPerformed(ActionEvent evt) {
       Lock();
diff --git a/Wrapping/Java/vtk/vtkPanel.java b/Wrapping/Java/vtk/vtkPanel.java
index 6399aab..a69f33b 100644
--- a/Wrapping/Java/vtk/vtkPanel.java
+++ b/Wrapping/Java/vtk/vtkPanel.java
@@ -7,7 +7,8 @@ import javax.swing.SwingUtilities;
 public class vtkPanel extends Canvas implements 
   MouseListener, 
   MouseMotionListener, 
-  KeyListener
+  KeyListener,
+  MouseWheelListener
 {
   protected vtkRenderWindow rw = new vtkRenderWindow();     
   protected vtkRenderer ren = new vtkRenderer();
@@ -68,6 +69,7 @@ public class vtkPanel extends Canvas implements
     addMouseListener(this);
     addMouseMotionListener(this);
     addKeyListener(this);
+    addMouseWheelListener(this);
     super.setSize(200,200);
     rw.SetSize(200,200);
     addWindowSetObserver(new WindowSetObserver());
@@ -458,6 +460,8 @@ public class vtkPanel extends Canvas implements
   
   public void keyReleased(KeyEvent e) {}
 
+  public void mouseWheelMoved(MouseWheelEvent e) {}
+
   private class WindowObservable extends Observable {
 
     public void notifyObservers() {
