마우스 드래그로 사각형을 그리는 법
렁찬
마우스 드래그로 JPanel에 사각형을 그리는데
소스는 다음과 같습니다.
public void paintRectangle(int oldx, int oldy, int newx, int newy)
{
g = this.getGraphics();
g.setColor(new Color(255,255,255));
g.drawRect(oldx, oldy, newx-oldx, newy-oldy);
}
public void mousePressed( MouseEvent e )
{
Point mousePos = e.getPoint();
oldX = mousePos.x;
oldY = mousePos.y;
}
public void mouseDragged( MouseEvent e )
{
Point mousePos = e.getPoint();
newX = mousePos.x;
newY = mousePos.y;
paintRectangle(oldX, oldY, newX, newY);
}
이상과 같이 마우스 드래그를 이용해서 사각형ㅇ르 그리는데
이전 사각형이 계속 남네요...
잔상남는 거 없앨수 없을 까요??
-
채꽃 2023-08-02
mousePressed 맨 윗줄에 refresh같은 기능을?? ㅎ
-
바름 2023-08-02
스타크래프트 부대 지정할때 드래그해서 선택하는 것처럼 할려고 하는 거라서 드래그 하고 릴리즈할 때 까지 그려져야 하는 거라서요... ㅠㅠ
-
늘찬 2023-08-02
mouseDragged 가 아니라.. out 을 해야 되는거 아닌가요?
dragged 는 드레그되는 동안 계속 발생할거 같은데요. mouseOut 인가.. 머 그런 메소드에서 처리해야 될거 같은데요. -
호시 2023-08-02
1. 패널을 다 지운다.2. 패널을 바탕색으로 다 덮어쓴다 3.mousePressed 메소드에서 paintRectangle 을 호출 한다.(바로 전에 그린 사각형을 바탕색으로)