ziehen MouseListener-Objekt mit Java-applet

Ich versuche, erstellen Sie ein applet, das zeichnet einen Kreis (definiert als ein Objekt) auf dem Bildschirm, dann ist dieser Kreis gezogen werden kann über den Bildschirm mit der Maus. So weit, wenn die Maus gedrückt wird, wird das Objekt gezeichnet und gezogen werden kann, aber was ich will, es zu tun ist, ziehen Sie das Objekt, wenn das applet gestartet wird, dann dem Benutzer zu ermöglichen, klicken Sie auf das Objekt und ziehen Sie es. Jede Hilfe oder Hinweise wäre sehr geschätzt werden. hier ist der code:

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class sheepDog extends Applet implements ActionListener, MouseListener, MouseMotionListener
{
    manAndDog dog;
    int xposR;
    int yposR;

    public void init()
    {
        addMouseListener(this);
        addMouseMotionListener(this);

    }
    public void paint(Graphics g)
    {
        dog.display(g);

    }
    public void actionPerformed(ActionEvent ev)
    {}
    public void mousePressed(MouseEvent e)
    {

    }
    public void mouseReleased(MouseEvent e)
    {


    }
    public void mouseEntered(MouseEvent e)
    {}
    public void mouseExited(MouseEvent e)
    {}
    public void mouseMoved(MouseEvent e)
    {
    }
    public void mouseClicked(MouseEvent e)
    {}
    public void mouseDragged(MouseEvent e)
    {
        dog = new manAndDog(xposR, yposR);
        xposR = e.getX();
        yposR = e.getY();
        repaint();

    }
}

class manAndDog implements MouseListener, MouseMotionListener
{
    int xpos;
    int ypos;
    int circleWidth = 30;
    int circleHeight = 30;
    Boolean mouseClick;

    public manAndDog(int x, int y)
    {
        xpos = x;
        ypos = y;
        mouseClick = true;
        if (!mouseClick){
            xpos = 50;
            ypos = 50;
        }

    }

    public void display(Graphics g)
    {
        g.setColor(Color.blue);
        g.fillOval(xpos, ypos, circleWidth, circleHeight);
    }

    public void mousePressed(MouseEvent e)
    {
        mouseClick = true;
    }
    public void mouseReleased(MouseEvent e)
    {

    }
    public void mouseEntered(MouseEvent e)
    {}
    public void mouseExited(MouseEvent e)
    {}
    public void mouseMoved(MouseEvent e)
    {}
    public void mouseClicked(MouseEvent e)
    {}
    public void mouseDragged(MouseEvent e)
    {
        if (mouseClick){
            xpos = e.getX();
            ypos = e.getY();
        }


    }
}

Dank

  • 1) Bitte lernen gemeinsam Java-Namenskonventionen (im speziellen der Fall, verwendet für die Namen) für Klassen -, Methoden - & Attribut-Namen & verwenden Sie es konsequent. 2) Wenn der Lehrer nicht angeben, 'applet' code einen Rahmen. Wenn Sie es geben Sie ein applet, Sag Ihnen, Sie sind nicht fit, um zu lehren, und sollten sich schämen.
  • public void mouseDragged(MouseEvent e) { dog = new manAndDog(xposR, yposR); Ein besseres design wäre nur erstellen Sie so viele Instanzen von manAndDog als auf dem Bildschirm angezeigt (z.B. 1) und get/set-Methoden für x -, y-position.
  • für die Anprangerung der Lehrer 🙂
  • Ich wollte gerade schreiben, "schlagen Sie auf den Kopf den Kopf', aber hatte Angst vor der OP nehmen könnte, dass zu wörtlich, und ich würde verklagt werden für die Beratung, es.
  • Ich werde, hold 'em 😉
InformationsquelleAutor Will | 2012-08-25
Schreibe einen Kommentar