2016-06-27 10 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); 
}); 
関連する問題