나는 페인트 사각형 (_rect)을 저장할 벡터 (_storedShapes)를 가지고 있습니다. 또한 타원 추가 계획도 있습니다. 내가 뭘 하려는지 내가 클릭하고 크기를 조정할 수있는 화면의 자리에 모양을 추가하는 것입니다. 여기에 무엇을하려고하는지에 대한 데모가있는 웹 사이트가 있습니다 http://code.google.com/p/tangram-canvas/downloads/detail?name=TangramCanvas-1.2.zip.그림 캔버스에서 모양 조작을 구현하는 방법은 무엇입니까?
이 데모와 유일한 차이점은 내 모양을 드래그 할 때 가운데에서 모든면으로 확장되기를 원합니다.
내 코드에서 미리 클릭 한 사각형이 클릭 한 캔버스에서 팝업 한 다음 드래그 할 때 화면의 커서를 따라갑니다.
private class DrawSListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
_preX = (int) (_rect.getX() - e.getX());
_preY = (int) (_rect.getY() - e.getY());
DrawingPanel dp = new DrawingPanel();
_rect = new SketchyRectangle(dp);
System.out.println("new rec");
// if (_rect.contains(e.getPoint())) {
_rect.setLocation(e.getX(), e.getY());
System.out.println("setLocation");
repaint();
System.out.println("paint");
//}
}
}
/**
* Private class DrawListener is called when the DrawEllipse or DrawRectangle radio buttons are selected.
*
*/
private class DrawListener implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
if (_rect.contains(e.getPoint())) {
_rect.setLocation(_preX, _preY);
_storedShapes.add(_rect);
repaint();
}
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
무엇이 문제입니까? – GETah