Mover String com mouse - [DÚVIDA]

Tenho um exemplo abaixo que move um quadrado, através do mouse, gostaria de saber como seria para mover uma String com o mouse, exemplo:
==> Através do “g2d.drawString(“teste”, 105, 70);”, crio a String teste na tela, como move-la através do mouse, alguém poderia me ajudar ??? vlw, segue abaixo o código com o quadrado…

[code]import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;

public class Janela extends JFrame {
private Rectangle2D.Double quad = new Rectangle2D.Double(50, 50, 50, 50);

public static void main(String[] args) {
    new Janela().setVisible(true);
}

public Janela() {
    setSize(250, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    MouseHandler handler = new MouseHandler();
    addMouseMotionListener(handler);
    addMouseListener(handler);
    setBackground(Color.GRAY);
}

@Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g.create();
    g2d.setColor(Color.RED);
    g2d.draw((Shape) quad);
    g2d.dispose();
}

public class MouseHandler extends MouseAdapter {
    private boolean mouseDownOnQuad = false;
    @Override
    public void mousePressed(MouseEvent e) {
        mouseDownOnQuad = quad.contains(e.getPoint());
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        mouseDownOnQuad = false;
    }

    @Override
    public void mouseDragged(MouseEvent e) {
        if (!mouseDownOnQuad)
            return;
        quad.x = e.getX() - (quad.width / 2.0);
        quad.y = e.getY() - (quad.height / 2.0);
        repaint();
    }
}

}[/code]

Isso aí não funcionou?

Funcionou sim, porém como ainda sou leigo nesse assunto de mover algo com mouse, não sei como alterar o código de modo que mova uma string e não um quadrado como é mostrado no código acima…

Funcionou sim, porém como ainda sou leigo nesse assunto de mover algo com mouse, não sei como alterar o código de modo que mova uma string e não um quadrado como é mostrado no código acima…[/quote]

melhor dizendo…não sei como declarar um String e essa seja utilizada no metodo: “public void mouseDragged”, tipo já tentei alterar o tipo quad para string, porém, sempre ocorre erro quando faço essa mudança, mesmo alterando no paint…

Quando você está usando Java 2D, você vai acabar desenhando a String com a classe Graphics, como fez para o Shape. O processo de mover em si é o mesmo.

[quote=ViniGodoy]Quando você está usando Java 2D, você vai acabar desenhando a String com a classe Graphics, como fez para o Shape. O processo de mover em si é o mesmo.
[/quote]

Poderia me mostra um exemplo como seria, pois o Shape não é compativel para String.
tipo usei:

g2d.drawString(string, 10, 20);

porém não funcionou

na declaração:

        private Rectangle2D.Double quad = new Rectangle2D.Double(50, 50, 50, 50);   
        // acrescente:
        private int tal_X=105, tal_Y = 70;

no paint:

        g2d.draw((Shape) quad); 
        // acrescente:
        g2d.drawstring("teste", tal_X, tal_Y);  

no dragging:

        quad.y = e.getY() - (quad.height / 2.0);
        // acrescente:
        tal_X = quad.x + 55;
        tal_Y = quad.y + 20;

[quote=Marcio_Lima]na declaração:

        private Rectangle2D.Double quad = new Rectangle2D.Double(50, 50, 50, 50);   
        // acrescente:
        private int tal_X=105, tal_Y = 70;

no paint:

        g2d.draw((Shape) quad); 
        // acrescente:
        g2d.drawstring("teste", tal_X, tal_Y);  

no dragging:

quad.y = e.getY() - (quad.height / 2.0); // acrescente: tal_X = quad.x + 55; tal_Y = quad.y + 20; [/quote]

Amigo, valeu pela dica, porém eu gostaria que apenas a String teste se movesse, gostaria de eliminar o quadrado, deixando apenas a palavra: “teste”. obrigado

É só tirar a linha que diz:

g2d.draw(shape);

É só tirar a linha que diz:

g2d.draw(shape);

e na linha:

public void mousePressed(MouseEvent e) { mouseDownOnQuad = quad.contains(e.getPoint()); }
o que eu devo fazer, pois quando clico na string ela se move, porém a partir do ponto que está o quadrado…