2017-02-03 5 views
0

애니메이션이 적용된 도형을 사용하여 사용자 지정 단추를 만들기로 결정했습니다. 그래서 튜토리얼을 따라 모든 설정을했고 제대로 작동했습니다. 제가 장면에 몇 가지 다른 항목을 추가했습니다. 이 개인 클래스에서 사용하고있는 위치 지정 방법이 올바르게 보이지만 Button 클래스에 설정된 절대 값을 가진 다른 인스턴스가 Button에 있습니다.사용자 지정 단추 위치 지정

상황을 명확히하기 위해,이는 모습입니다 : 내가 구축

ToggleSwitch이 이동하고 그것을 클릭하면, 배경색을 변경하는 사각형의 원형이다

enter image description here

의미가 있음 :이 어떻게 반응

는 그리고이입니다

private static class ToggleSwitch extends Parent { 

... 

public BooleanProperty switchedOnProperty() { 
    return switchedOn; 
} 

public ToggleSwitch() { 
    Rectangle background = new Rectangle(102, 52); 
    background.setArcWidth(50); 
    background.setArcHeight(50); 
    background.setFill(Color.WHITE); 
    background.setStroke(Color.LIGHTGRAY); 

    Circle trigger = new Circle(25); 
    trigger.setFill(Color.WHITE); 
    trigger.setStroke(Color.LIGHTGRAY); 

    // These two lines are my problem!! 
    trigger.setCenterX(26); 
    trigger.setCenterY(26); 
    ... 
} 
} 

그래서 내가 그것을 사각형에 있어야하는 원의 위치를 ​​설정하는 방법을 모른다하고 "다른이 없습니다 : 상단 버튼

을 차단하고 나는 그것을 위해 다음과 같은 코드를 사용 인스턴스 "가 내 응용 프로그램을 차단합니다.

장면에서 제거한 후에 모든 것이 잘 작동하므로 문제가 될 수 있습니다.

답변

0

문제는 버튼을 만들 때가 아니라 창에 추가하는 방식과 관련이 있습니다. 콘텐츠 사이를 전환하는 루트 창으로 만 일반 창 개체 만 사용했기 때문에 모두 위치 (0,0)에 고정되어있었습니다.

해결책 : BorderPane을 루트 창으로 사용하십시오.