Move and resize objects using Mouse Events

With this tutorial we are going to see how to handle moving and re sizing events in a Java Desktop application. You might find this useful when you want to add rich mouse functionality to the application. For example it’s very cool to let the users resize a window using the mouse wheel.

In short in order to move and resize objects using mouse events, one has to perform the following steps:

  • Create a class that extends MouseAdapter
  • Override the mousePressed method to customize the handling of that specific event. Now every time you press a button this method will be launched.
  • Use MouseEvent.getX, MouseEvent.getY methods to get the coordinates of the position the mouse pointer had when the mouse event occurred.
  • Override the mouseDragged method to customize the handling of that specific event. Now every time you drag an object, this method will be launched.
  • Use MouseEvent.getX, MouseEvent.getY methods to get the new coordinates of the dragged object. Then call repaint() to repaint the object to the new position.
  • Create a class that implements MouseWheelListener.
  • Override mouseWheelMoved method to customize the handling of that specific event. Now every time the user uses the mouse wheel this method will fire up. You can then use MouseWheelEvent.WHEEL_UNIT_SCROLL to get the scroll units amount and resize the window accordingly.

Let’s see the code:

package com.javacodegeeks.snippets.desktop;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Resize extends JPanel {

    private Rectangle2D.Float myRect = new Rectangle2D.Float(90, 90, 90, 90);
    BindMouseMove movingAdapt = new BindMouseMove();

    public Resize() {



  addMouseWheelListener(new ResizeHandler());

    public void paint(Graphics graphics) {


  Graphics2D graphics2d = (Graphics2D) graphics;

  graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

  graphics2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

  graphics2d.setColor(new Color(0, 0, 200));


    class BindMouseMove extends MouseAdapter {

  private int x;

  private int y;


  public void mousePressed(MouseEvent event) {

x = event.getX();

y = event.getY();



  public void mouseDragged(MouseEvent event) {

int dx = event.getX() - x;

int dy = event.getY() - y;

if (myRect.getBounds2D().contains(x, y)) {

    myRect.x += dx;

    myRect.y += dy;



x += dx;

y += dy;


    class ResizeHandler implements MouseWheelListener {


  public void mouseWheelMoved(MouseWheelEvent e) {

int x = e.getX();

int y = e.getY();

if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {

    if (myRect.getBounds2D().contains(x, y)) {

  float amount = e.getWheelRotation() * 5f;

  myRect.width += amount;

  myRect.height += amount;





    public static void main(String[] args) {

  JFrame jFrame = new JFrame("Moving and Scaling");

  Resize resi = new Resize();




  jFrame.setSize(300, 300);



This was an example on how to move and resize objects using Mouse Events

Byron Kiourtzoglou

Byron is a master software engineer working in the IT and Telecom domains. He is an applications developer in a wide variety of applications/services. He is currently acting as the team leader and technical architect for a proprietary service creation and integration platform for both the IT and Telecom industries in addition to a in-house big data real-time analytics solution. He is always fascinated by SOA, middleware services and mobile development. Byron is co-founder and Executive Editor at Java Code Geeks.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button