2016-06-27 2 views
0

확장 중일 때 내 TitledPane을 열지 않으려 고합니다. 부울 변수 isExpanding을 만들어 확장 할 때 true로 설정하고 확장이 끝나면 false로 설정합니다.JavaFx - MouseEvent 취소

제 생각에는 SceneBuilder GUI를 사용하는 동안 TitledPane을 클릭했을 때 기본적으로 확장되고 변경할 수 있다고 생각됩니다. 내 var isExpanding == true이면 TitledPane 이벤트를 클릭하면 아무 것도 필요하지 않습니다.

TitledPane을 클릭하면 내 MouseEvent가 나타납니다. 애니메이션이 다른 함수에서 완료되면 isExpanding이 false로 설정됩니다.

@FXML 
private void handleTitledPaneMouseClickDNSAction(MouseEvent event) { 
    if(dnsTitledPane.expandedProperty() == null || dnsTitledPane.isExpanded() == false) { 
     animateCollapse(dnsPane, dnsTitledPane); 
     isExpanding = false; 
    } else { 
     expanTimeline = new Timeline(new KeyFrame(
      Duration.millis(15), 
      ae -> animateExpanstion(dnsPane, dnsTitledPane))); 
     expanTimeline.setCycleCount(Timeline.INDEFINITE); 
     expanTimeline.play(); 
     isExpanding = true; 
    } 
} 

답변

0

그저 해결 방법입니다. 마우스 클릭 핸들러에서 명시 적으로 set titledPane Expansion as false을 사용할 수 있습니다. 코드는 다음과 같습니다.

titlePane.setOnMouseClicked((evt) -> { 
    if(isExpanding) 
    titlePane.setExpanded(false); 
    else 
    titlePane.setExpanded(true); 
});