Exercicio 12.28 deitel como programar java edicao 4

E aí Galera, consegui fazer uma coisa, mas ta dificil, voces podem me ajudar?
Olha o meu código:
Produção de efeito “Elástico”, quando o usuário arrasta o mouse o tamanho do retangulo aumenta ou diminui dependendo as regioes que ele arrastar.Igual na area de trabalho do windows que fica um retangulo pontilhado wusndo vc faz isso.Obrigado

package exe1228;

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
*

  • @author breno
    */
    public class MouseTracker extends JFrame implements MouseListener, MouseMotionListener {

private JLabel statusBar, area;
public String tipoDesenho;
public int x, y, a, l;

public MouseTracker() {
super(“Demonstração dos eventos do Mouse.”);
statusBar = new JLabel();
area = new JLabel();

getContentPane().add(statusBar, BorderLayout.SOUTH);

addMouseListener(this);
addMouseMotionListener(this);

setSize(275, 100);
setVisible(true);
}

@Override
public void paint(Graphics g) {

super.paint(g);
g.drawRect(x, y, l, a);
}

public void mouseClicked(MouseEvent event) {
statusBar.setText("Clicado a [ " + event.getX() + “,” + event.getY() + “]”);
}

public void mousePressed(MouseEvent event) {
statusBar.setText("Pressionado a [ " + event.getX() + “,” + event.getY() + “]”);
x = event.getX();
y = event.getY();
}

public void mouseReleased(MouseEvent event) {
if (event.getX() > x && event.getY() > y) {
l = event.getX() - x;
a = event.getY() - y;

}
if (event.getX() < x && event.getY() < y) {
l = x - event.getX();
a = y - event.getY();

}
repaint();
}

public void mouseEntered(MouseEvent event) {
statusBar.setText(“Mouse Dentro da janela”);
}

public void mouseExited(MouseEvent event) {
statusBar.setText(“Mouse Fora da janela”);
}

public void mouseDragged(MouseEvent event) {
statusBar.setText(“Arrastado a [” + event.getX() + “,” + event.getY() + “]”);
if (event.getX() > x && event.getY() > y) {
l = event.getX() - x;
a = event.getY() - y;

}
if (event.getX() < x && event.getY() < y) {
l = x - event.getX();
a = y - event.getY();
}
repaint();
System.out.println(“Largura :” + l + “\n”);
System.out.println(“Altura :” + a);

}

public void mouseMoved(MouseEvent event) {
statusBar.setText(“Movido a [” + event.getX() + “,” + event.getY() + “]”);
}

public static void main(String args[]) {
MouseTracker aplicacao = new MouseTracker();
aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}