2016-12-15 12 views
0

このような振る舞いを設定するにはどうすればよいですか?現在はホバー(mouseEntered)は問題ありません。DatePickerの中にカーソルが入るたびにDateChooserが表示されますが、 DateChooser私はDateChooser自体にアクセスできるようなメソッドを見つけることができません。唯一のカーソルが日付ピッカーの下になりますが、マウスはそれから出て行くたびDateChooserコントロールが近いべきときDateChooserコントロールを閉じないように固定JavaFX DatePicker hide on mouseExited

enter image description here

It's。肌へのアクセス

datePicker.setOnMouseEntered((event)->{datePicker.requestFocus();datePicker.show();}); 
    datePicker.setOnMouseExited((event)->{if(event.getY()<23)datePicker.hide();}); 

答えて

1

は、あなたがポップアップを隠すために、そのシーンにonMouseExitedハンドラを追加することができますあなたはポップアップのSceneにアクセスできますポップアップのコンテンツにアクセスすることができます:

EventHandler<MouseEvent> exitHandler = e -> datePicker.hide(); 
datePicker.setOnShown(evt -> { 
    DatePickerSkin skin = (DatePickerSkin) datePicker.getSkin(); 
    Scene sc = skin.getPopupContent().getScene(); 
    sc.setOnMouseExited(exitHandler); 
}); 

パッケージcom.sunにあるスキンにアクセスする必要があるので、良い解決策ではありませんが、解決策です。