모양 작업의 크기 조정을 완료하려고합니다. 원하는 결과를 거의 얻었습니다. 마우스를 크기 조정 커서로 변경 한 후에 드래그하면 같은 유형의 다른 모양이 먼저 그려지고 두 번째 그림 모양이 크기 조정됩니다. . 이러한 그림의 결과 : 이것은 내 관련 코드가크기 조정 모양이 거의 작동합니다.
: 무슨 일 수도
@Override
public void mouseMoved(MouseEvent e) {
if (e.isControlDown()) {
updateShapeUnderMouse(e.getX(), e.getY());
} // deals with drawing shape if control button held
//deals with identifying shape to resize
int x = e.getX();
int y = e.getY();
for (int i = myShapes.size() - 1; i >= 0; i--) {
Shape s = (Shape) myShapes.get(i);
if (s.isedgePoint(x, y)) {
ShapetoResize = s;
setCursor(crnw);
prevDragX = x;
prevDragY = y;
return;
}
}
@Override
public void mouseDragged(MouseEvent event) {
if (event.isControlDown()) {
if (shapeUnderMouse != null) {
shapeUnderMouse.setXPos(event.getX());
shapeUnderMouse.setYPos(event.getY());
repaint();
}
} // deals with moving the shape
//deals with identifying and resizing shape
int x = event.getX();
int y = event.getY();
if (ShapetoResize != null) {
if (ShapetoResize instanceof Square) {
ShapetoResize.resizeSE(x - prevDragX, y - prevDragY);
} else if (ShapetoResize instanceof Rectangle) { // SAME CODE FOR EACH SHAPE
}
repaint();
}
}
어떤 생각?
public ArrayList<Shape> myShapes = new ArrayList();
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
int length = myShapes.size();
for (int i = 0; i < length; i++) {
myShapes.get(i).paint(g);
}
}
이미지에 대한 링크를 추가하면 이미지를 게시 할 담당자가 부족할 수 있지만 대신 할 수 있습니다. –
그걸 볼 수 있니? – GCnewbie
질문을 편집하여 설명하는 문제가있는 [sscce] (http://sscce.org/)를 포함하십시오. 대칭 크기 조정의 경우 'MouseWheelListener'를 고려하십시오. – trashgod