원 (객체로 정의 됨)을 화면에 그리는 애플릿을 만들려고하는데 마우스를 사용하여이 원을 화면에서 드래그 할 수 있습니다. 지금까지 마우스를 누르면 오브젝트가 그려지고 드래그 될 수 있습니다.하지만 애플릿이 시작될 때 오브젝트를 그려서 오브젝트를 클릭하고 드래그 할 수 있습니다. 어떤 도움이나 단서도 많이 감사 할 것입니다. 여기에 코드입니다 : 애플릿의 start
방법에서MouseListener Java 애플릿을 사용하여 객체를 끌기
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();
}
}
}
감사
1) http://java.sun.com/docs (공통 [자바 명명 규칙을] 배우하시기 바랍니다 /books/jls/second_edition/html/names.doc.html#73307) (특히 이름에 사용 된 사례)을 클래스, 메소드 및 속성 이름에 사용하고 일관되게 사용하십시오. 2) 교사가 '애플릿'에 프레임을 지정하지 않은 경우. 애플릿을 지정했다면 애플릿을 가르치기에 적합하지 않다는 사실을 말하고 자신을 부끄러워해야합니다. –
'public void mouseDragged (MouseEvent e) { dog = new manAndDog (xposR, yposR);'더 좋은 디자인은 화면에 나타나는 것처럼 manAndDog의 인스턴스를 여러 개 만들고 (예 : 1) x, y 위치의 get/set 메소드. –
@AndrewThompson +1 교사를 쉐이킹하기위한 것. – MadProgrammer