关闭Swing模态弹出窗口

baka1408

当我尝试隐藏或关闭作为模式调用的弹出对话框时,这些组件将按原样消失,但是指示该窗口的模态的灰色屏幕仍然可见,直到在该窗口区域单击第一手鼠标单击事件为止。

WebPopup darkenScreen = new WebPopup(PopupStyle.gray);
ContructPopUP(darkenScreen);
darkenScreen.showPopupAsModal(this);

和弹出设置方法:

private void ContructPopUP(WebPopup darkenScreen)
{
    final JFrame mFrame = this;
    final WebTextField inputTime = new WebTextField("(sekundy)");
    darkenScreen.setLayout(new GridLayout(3, 1));
    darkenScreen.add(new WebLabel("Podaj czas : "));
    darkenScreen.add(inputTime);
    darkenScreen.add(new WebButton(new ActionListener()
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            int secTime = Integer.parseInt(inputTime.getText());
            if (secTime > 0 && secTime < 7200)
            {
                Connection.TurnOff(secTime);
                System.out.println("clicked!");
            }

            darkenScreen.hidePopup();
        }
    }));
}

当像普通的弹出窗口一样调用时,一切都会缩进。我已尝试通过多种方式关闭它,但没有一个起作用。

在单击按钮并执行popup.hide之前: 在popup.hide()之前

完成后:

后

弗里克·德·布赖恩(Freek de Bruijn)

假设您使用的是WebLaF库,我认为您的问题可能是由该PopupLayer.hidePopup方法引起的该方法由该WebPopup.hidePopup方法调用,并且应该隐藏模式弹出窗口,但是正如您所注意到的,灰色层不会消失。如果您看一下PopupLayer.hideAllPopups,将用此方法删除所有弹出窗口,并使弹出层不可见我没有使用WebLaF库的经验,感觉有点黑,但是您可以通过自己隐藏弹出层来解决问题:

import com.alee.laf.button.WebButton;
import com.alee.laf.label.WebLabel;
import com.alee.laf.text.WebTextField;
import com.alee.managers.popup.PopupStyle;
import com.alee.managers.popup.WebPopup;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class ModalWebPopup {
    public static void main(final String[] arguments) {
        new ModalWebPopup().launchGui();
    }

    private void launchGui() {
        final JFrame frame = new JFrame("Stack Overflow: modal WebPopup");
        frame.setBounds(100, 100, 800, 600);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        final JPanel panel = new JPanel();
        final JButton button1 = new JButton("Show a modal WebPopup");
        panel.add(button1);
        frame.getContentPane().add(panel);

        button1.addActionListener(actionEvent -> {
            final WebPopup darkenScreen = new WebPopup(PopupStyle.gray);
            constructPopup(darkenScreen);
            darkenScreen.showPopupAsModal(frame);
        });

        frame.setVisible(true);
    }

    private void constructPopup(final WebPopup darkenScreen) {
        //final JFrame mFrame = this;
        final WebTextField inputTime = new WebTextField("(sekundy)");
        darkenScreen.setLayout(new GridLayout(3, 1));
        darkenScreen.add(new WebLabel("Podaj czas : "));
        darkenScreen.add(inputTime);
        darkenScreen.add(new WebButton(actionEvent -> {
            int secTime = Integer.parseInt(inputTime.getText());
            if (secTime > 0 && secTime < 7200) {
                //Connection.TurnOff(secTime);
                System.out.println("clicked!");
            }

            System.out.print("Hide the modal WebPopup ");

            // Normal way to hide the popup:
            //darkenScreen.hidePopup();

            System.out.println("by making the parent of the WebPopup invisible.");

            // Alternative way to hide the popup:
            darkenScreen.getParent().setVisible(false);

            // Compare the PopupLayer.hideAllPopups and PopupLayer.hidePopup methods
            // for more details.
        }));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果存在多个模态,则模态弹出窗口不会关闭

来自分类Dev

在关闭弹出窗口后,模态弹出背景逐渐消失

来自分类Dev

关闭弹出窗口后,模态弹出背景逐渐消失

来自分类Dev

链接到模态弹出窗口上的“关闭”按钮的 JS 代码

来自分类Dev

表单提交后无法关闭模态弹出窗口

来自分类Dev

显示模态弹出窗口

来自分类Dev

在模态弹出窗口背面打开的模态弹出窗口

来自分类Dev

模态弹出窗口不出现

来自分类Dev

使用Java的模态弹出窗口

来自分类Dev

无法关闭弹出窗口

来自分类Dev

关闭信息弹出窗口

来自分类Dev

Google Chrome扩展程序:模态/弹出窗口关闭时发出警报

来自分类Dev

是否可以在页面刷新时停止关闭Jquery模态弹出窗口?

来自分类Dev

当我尝试在 jquery 中将数据附加到其正文时,模态弹出窗口正在关闭

来自分类Dev

AngularJS-关闭模态窗口

来自分类Dev

关闭时重置模态窗口

来自分类Dev

关闭Visual Studio弹出窗口

来自分类Dev

JComboBox防止弹出窗口关闭

来自分类Dev

触摸后关闭弹出窗口

来自分类Dev

防止关闭“ jQuery弹出窗口”

来自分类Dev

如何从后台关闭弹出窗口?

来自分类Dev

关闭下载弹出窗口java

来自分类Dev

从弹出窗口中关闭TabItem

来自分类Dev

Javascript自动关闭弹出窗口

来自分类Dev

插入后关闭弹出窗口

来自分类Dev

PyDev弹出窗口关闭日食

来自分类Dev

Android关闭多个弹出窗口

来自分类Dev

Android-关闭弹出窗口

来自分类Dev

在OnBackPressed()上关闭弹出窗口