2016-06-27 38 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); 
});