2017-12-07 41 views
2

Circle이 마우스 이벤트가 '스트로크'일 때만 마우스 이벤트에 응답하려고합니다. 즉 경계를 의미합니다. 물론 원에는 투명한 채우기와 다채로운 획이 있습니다. 확장 JavaFX Path은 나에게 고통스러운 것처럼 보입니다.이 Circle 클래스를 사용하면 어떤 방식 으로든 그렇게 할 수 있습니까?투명한 채우기 원을 마우스 이벤트로 가져 오는 것을 중지하는 방법은 무엇입니까?

답변

2

귀하의 솔루션은 자바 9에서 더 이상 작동하지 않고 귀하의 경우 그냥 원의 채우기가 null로 설정할 수 있습니다. 이것은 동일한 효과를 가져야합니다.

+0

와우! 나는 훨씬 더 좋은 아이디어가 있다는 것을 알았다. 얼마나 멋진가! 고마워. –

0

이 솔루션은 Java 9에서 작동하지 않습니다. 마지막으로 나는 훌륭한 방법을 발견했습니다. 그것은 미래에 다른 사람을 도울 수

javafx.scene.shape.Shape 클래스가 사용되지 않는 방법 다른 방법 이제 computeShapeContains(localX, localY, impl_configShape())

를 호출

boolean impl_computeContains(double localX, double localY)

을 가지고, 장면 그래프는 포인트가 모양인지 여부 결정 그 impl_computeContains 메소드를 호출 JavaFX.scene.Node에서

boolean contains(double localX, double localY) 방법으로. 그래서 impl_computeContains이 같은 mthod 그 방법을 살펴했고 오버라이드 :

@Override 
    protected boolean impl_computeContains(double localX, double localY) { 
     float miterlimit = 
      (float) Utils.clampMin(getStrokeMiterLimit(), 1.0f); 
     return Toolkit.getToolkit().strokeContains(impl_configShape(), localX, localY, getStrokeType(), 
       Utils.clampMin(getStrokeWidth(), 0.0f), getStrokeLineCap(), getStrokeLineJoin(), miterlimit); 
    } 

및 붐! 그것은 작동! 내가 한 일은 포인트가 도형의 내부 부분에 있다면 무엇을해야하는지 구현 한 부분을 제거했습니다.