JDialog 上的 .setModal() 方法

.setModal() method on a JDialog

我想让我在子 window 处于活动状态时无法访问父 window。我正在使用 JDialog class 的 .setModal() 方法,但它似乎不起作用。

   if (clickEvent.getSource().equals(addCheckout1)){

        SupermarketCheckoutGUI checkout1 = new SupermarketCheckoutGUI();
        checkout1.setVisible(true);
        checkout1.setSize(670, 400);

        checkout1.setModal(false);
    }

只是为了检查,我已经尝试了 true 和 false,但没有任何变化。

来自docs

Note: changing modality of the visible dialog may have no effect until it is hidden and then shown again.

尝试在 setVisible 之前调用 setModal(true)

setModal 已弃用,您应该调用 setModalityType 代替(您需要的类型可能是 APPLICATION_MODAL),检查此 tutorial.

尝试

GP = new JDialog(f,"Game Over",Dialog.ModalityType.DOCUMENT_MODAL);