禁用JavaFX的Alt + F4

时间:2017-03-21 17:02:10

标签: java javafx

我需要使用 Alt + F4 键盘快捷键禁用关闭事件。现在,我试图在我的场景中过滤此按键并使用它,但没有取得任何成功,无论如何都会发生关闭事件。以下是我的部分代码:

scene.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
    if (event.isAltDown() && event.getCode().equals(KeyCode.F4)) {
        event.consume();
    }
});

primaryStage.setOnCloseRequest((ev) -> System.exit(0));

1 个答案:

答案 0 :(得分:6)

您可以尝试禁用隐式退出:

/**
 * WooCommerce Extra Feature Shortcode
 * --------------------------
 *
 * Register a shortcode that creates a product categories dropdown list
 *
 * Use: [product_categories_dropdown orderby="title" count="0" hierarchical="0"]
 *
 */
add_shortcode( 'product_categories_dropdown', 'woo_product_categories_dropdown' );
function woo_product_categories_dropdown( $atts ) {
    extract(shortcode_atts(array(
        'show_count'    => '0',
        'hierarchical'  => '0',
        'orderby'       => ''
    ), $atts));

    ob_start();

    $c = $count;
    $h = $hierarchical;
    $o = ( isset( $orderby ) && $orderby != '' ) ? $orderby : 'order';

    // Stuck with this until a fix for http://core.trac.wordpress.org/ticket/13258
    wc_product_dropdown_categories( $c, $h, 0, $o );
    ?>
    <script type='text/javascript'>
    /* <![CDATA[ */
        var product_cat_dropdown = jQuery(".dropdown_product_cat");
        product_cat_dropdown.change(function() {
            if ( product_cat_dropdown.val() !=='' ) {
                location.href = "<?php echo home_url(); ?>/?product_cat="+product_cat_dropdown.val();
            }
        });
    /* ]]> */
    </script>
    <?php

    return ob_get_clean();
}

然后创建一个按钮,在点击时关闭应用程序:

Platform.setImplicitExit(false);
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        event.consume();
    }
});