第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

具有模態(tài)的舞臺(tái)隱藏最大化按鈕

具有模態(tài)的舞臺(tái)隱藏最大化按鈕

楊__羊羊 2023-09-13 15:23:18
當(dāng)我設(shè)置舞臺(tái)的模式時(shí),它會(huì)隱藏最大化按鈕Stage stage = new Stage();stage.setScene(new Scene((Parent) controller.getViewNode()));stage.initStyle(StageStyle.DECORATED);stage.setResizable(true);stage.setIconified(false);stage.initModality(Modality.APPLICATION_MODAL);stage.initOwner(window);所以我希望舞臺(tái)是一個(gè)模態(tài),但也顯示最大化按鈕,但不會(huì)發(fā)生什么。順便說一句,我正在使用 Ubuntu。我已經(jīng)進(jìn)行了搜索,但我只找到了如何刪除最大化按鈕
查看完整描述

1 回答

?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

我也遇到同樣的情況。如果我嘗試最大化使用

stage.setMaximized(true);

它不起作用,最大化按鈕也不顯示。我正在研究這個(gè)問題,但根本沒有答案。這是我在這里發(fā)現(xiàn)的第一個(gè)類似問題。我在用著:

  • 操作系統(tǒng):GNU/Linux

  • 發(fā)行版:Manjaro

  • Linux 核心:5.3.6-1

  • 來自:侏儒。

  • Java版本:OpenJDK 12.0.1

  • JavaFX 版本:OpenJFX 12.0.1(膠子構(gòu)建)。

更新:官方文檔指出:

請(qǐng)注意,顯示模態(tài)階段并不一定會(huì)阻止調(diào)用者。

因此,我決定使用 EventHandler 來解決該問題。我創(chuàng)建了一個(gè)實(shí)用程序類來處理這個(gè)問題。

import javafx.event.Event;

import javafx.stage.Stage;

import javafx.stage.WindowEvent;


/**

 * This is a utility class to create a Widow Event handler

 * in such way that when a child window shows, a parent (owner)

 * stage get locked; and when the child window hides, the parent

 * stage get unlocked.

 *

 * @author David Vidal

 * @version 1.0

 * @since 1.0

 */

public final class WindowsModality {

    /*=================*

     * Private fields. *

     *=================*/

    /**

     * The parent stage.

     */

    private final Stage owner;


    /*===============*

     * Constructors. *

     *===============*/


    /**

     * Initialize an instance with given parameters.

     *

     * @param owner parent stage.

     * @param child child stage.

     */

    public WindowsModality(Stage owner, Stage child) {

        this.owner = owner;

        child.addEventHandler(WindowEvent.WINDOW_HIDDEN, this::childHidden);

        child.addEventHandler(WindowEvent.WINDOW_SHOWN, this::childShown);

    }


    /*==================*

     * Implementations. *

     *==================*/


    /**

     * Implementation of functional interface EventHandler,

     * used to know when the child window is closed/hidden.

     *

     * @param event from {@link javafx.event.EventHandler#handle(Event)}

     */

    private void childHidden(WindowEvent event) {

        if (!event.isConsumed()) {

            owner.getScene().getRoot().setDisable(false);

        }

    }


    /**

     * Implementation of functional interface EventHandler,

     * used to know when the child window is shown.

     *

     * @param event from {@link javafx.event.EventHandler#handle(Event)}

     */

    private void childShown(WindowEvent event) {

        if (!event.isConsumed()) {

            owner.getScene().getRoot().setDisable(true);

        }

    }

}

然后,我剛剛添加了以下代碼:


public void showAnotherStage(){

    //(Create and setup the new stage and scene)

    

    new WindowModality(primaryStage, newStage);

    newStage.show();

    

    //Do something else.

}

這是我的解決方案,經(jīng)過測(cè)試并且工作正常。當(dāng)顯示子窗口(newStage)時(shí),所有者(primaryStage)將被禁用,因此盡管用戶可以激活primaryStage窗口,但用戶無法與其節(jié)點(diǎn)交互。


查看完整回答
反對(duì) 回復(fù) 2023-09-13
  • 1 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)