Desenhar Retangulo com o Mouse

Boa Tarde a todos…
Seguinte galera, estou precisando acabar um trabalho pra faculdade, o professor pediu que fizessemos um programa em que o usuario desenhasse um retangulo com o mouse, ele pressionaria o botao, e enquanto o mesmo estiver pressionado e o mouse se move, o retangulo vai sendo dimensionado, assim que o botao é solto o retangulo é entaum desenhado, é meio que um estilo de paint brush, gimp, onde vc tem as formas pre-definidas.
Alguem pode me ajudar com isso
Toda a ajuda é bem vinda, Obrigado.

Qual a sua duvida mais especificamente?

Rafael

eu naum estou conseguindo fazer com que, quando o usuario pressione e segure o botao do mouse, o programa vá desenhando o retangulo conforme o usuario move o mouse, como se fosse no gimp mesmo, que vc segura o botao do mouse e o arrasta para a direita e pra baixo e as linhas do retangulo se ajustam

Voce quer que elas fiquem retas (ao inves de seguir o curso do mouse)?

Raael

Exatamente.
Se possivel, para um melhor entendimento, abra o gimp ou o paint brush, selecione a forma do retangulo e o desenhe na tela.
Ah desculpe se naum consegui me expressar direito, é que naum imaginei como descrever esse problema
Obrigado

Cara, pessoalmente nao sei exatamente como fazer. Considerando que nao tenha nada pronto (eh um chute, talvez tenha ja na api padrao), como teste inicial, eu tentaria algo assim:
como vc sabe, ha um componente para desenhar uma linha reta do ponto [x1, y1] ao ponto [x2, y2]. (drawLine(int, int, int, int), ou qq coisa assim). Tendo isso em mente, ao clicar e segurar o botao esquerdo do mouse, vc registra a primeira parte das coordenadas (x1, y1). Quando o usuario mexer o mouse, vc pega a nova coordenada (x2, y2) e entao chama o drawLine() para fazer a linha. Se ele mover de novo, vc desenha para o novo x2, y2 (lembrando que o x1, y1 nao muda).
Quando o usuario soltar o clique, vc desenha a linha final.

Isso deve envolver um repaint() a cada movimento do mouse, ou algo mais elaborado. Voce pode tentar comecar por ai.

Rafael

Se vc quiser redimensionar o retangulo nao sei como fazer mais se for cria-lo apenas com o clique do mouse
de uma olhada neste codigo as vezes te ajude.

import javax.swing.;
import java.awt.
;
import java.awt.Graphics;
import java.io.;
import java.lang.String.
;
import java.awt.event.;
import javax.swing.
;
import java.util.;
import java.awt.image.
;
class PanelQuad extends JPanel implements MouseListener

{
private Vector vetPonto;
public PanelQuad()
{
setBackground(Color.white);
addMouseListener(this);
vetPonto = new Vector();
}
public void mouseClicked(MouseEvent e)
{
vetPonto.add(e.getPoint());
repaint();
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void paint(Graphics g)
{
super.paint(g);
if(vetPonto.size()>0)
{
for(int i=0;i < vetPonto.size();i++)
{

          Point p = (Point)vetPonto.elementAt(i);
          Graphics2D comp2D = (Graphics2D)g;
          comp2D.setColor(Color.blue); 
          Rectangle rectang = new Rectangle(p,new     Dimension(40,30));
          comp2D.draw(rectang); 
       }   
  }

}
}
public class Teste extends JFrame
{
private PanelQuad panel;
public Teste()
{
super(“Evento teste”);
setSize(400,300);
setLocation(100,100);
setBackground(Color.white);
getContentPane().add(new PanelQuad());
show();
}
public static void main()
{
new Teste();
}

}