【问题标题】:Prevent parent window from closing while child window is opened/running防止父窗口在子窗口打开/运行时关闭
【发布时间】:2019-10-06 10:33:51
【问题描述】:

如何防止父窗口在子窗口打开/运行时关闭。如果可能,父窗口不会被禁用。

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    执行此操作的“正常” UI 主题是使子窗口模态。含义:UI 只允许处理子窗口,因此阻止了任何其他会影响父窗口的点击或操作。

    但是:

    如果可能,父窗口不会被禁用。

    如果你真的想要那样,那么孩子就不能是模态的。然后你必须手动完成所有这些事情。换句话说:您必须在您的父窗口上实现 WindowListeners、ActionListeners...,以拦截任何关闭该窗口的尝试。并根据“子窗口已启动”阻止或允许它。第一眼见here。但是,根据您的父窗口到底能做什么,您也在寻找很多其他的工作!

    请注意:如上所述,这意味着大量工作并且这不是大多数人所期望的。

    【讨论】:

    • 感谢您的回答 :) 会检查出来。
    • @NewbieCoder 非常欢迎您......如果答案就足够了,请随时接受。否则,如果您需要更多信息,请告诉我。
    • 注意,在JavaFX中,如果你不想使用模式窗口,你只需要window.setOnCloseRequest(event -> { if (otherWindow.isShowing()) { event.consume(); } });
    • @Slaw 也许吧。或者有一个菜单项来关闭窗口,以及这里或那里的另一个操作。不要做出不容易兑现的承诺...
    • 好吧,你总是可以从这些菜单项/其他操作中触发WindowEvent.WINDOW_CLOSE_REQUEST,而不是调用Window#hide();)但我明白你的意思。
    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2015-06-12
    • 2020-06-26
    • 2012-12-15
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2014-03-17
    相关资源
    最近更新 更多