2014-11-12 2 views
0

내 JavaFX 프로젝트에서 MouseEvent로 기본 선을 그려야하는데 Polyline을 사용하기로 선택했지만 부도덕하게 작동하지 않습니다.Javafx 폴리 라인

if (event.getButton() == MouseButton.SECONDARY) { 
    Polyline line = new Polyline(); 
    main.getChildren().add(line); 
    line.getPoints().add(event.getX()); 
    line.getPoints().add(event.getY()); 
    line.setScaleX(0); 
    line.setScaleY(0); 
    line.setStroke(Color.CORAL); 
    line.setStrokeWidth(4); 
} else if (event.getEventType() == MouseEvent.MOUSE_DRAGGED) { 
    if (event.getButton() == MouseButton.SECONDARY) { 
     Polyline line = new Polyline(); 
     for (Node s: main.getChildren()) { 
      if (s instanceof Polyline) { 
       line.getPoints().add(event.getX()); 
       line.getPoints().add(event.getY()); 
      } 
     } 
     main.getChildren().add(line); 
    } 
} 
+0

는이 코드가 수행하는 기대를 적어주세요 :) 데 도움이, 그리고 무엇 인 그렇게하는 것은 그것과 다릅니다. (일부 컨테이너의 모든 폴리선에 대해 각 드래그마다 점을 추가하는 것처럼 보입니다.) 또한이 이벤트 핸들러가 첨부 된 내용과 방법을 보여주는 데 도움이 될 수 있습니다. –

+0

@James_D이 코드는이 점들 대신 선을 그어야합니다. 'EventHandler myHandler = new EventHandler () {@ 오버라이드 public void handle (MouseEvent 이벤트) {' – HP121

답변

0

그것은 마우스 이벤트가 새 폴리 라인 객체를 생성 호출 될 때마다 원인이 작동하지 않을 수 있습니다 문제를 찾을 수 없습니다, 여기 된 MouseEvent 코드입니다. 처음에는 하나의 PolyLine을 만들고이 PolyLine에 모든 포인트를 추가해야합니다. 코드를 사용하면 새로운 PolyLine을 각각 가리킬 수 있습니다. Btw. x와 y로 추가하는 것이 아니라 별도의 작업을 조정하면 잘 모르겠어요, 사용하려고 :

line.getPoints().addAll(event.getX(),event.getY()); 

희망이