首页 > 解决方案 > 如果单击退出 JDialog,则 JDialog 关闭

问题描述

如果我单击 JDialog,我只想关闭 JDialog

import javax.swing.JDialog;
import javax.swing.JLabel;


public class DialogFenster extends JDialog {

    public DialogFenster(String pText, String pTitel)
    {
        JDialog meinJDialog = new JDialog();
        meinJDialog.setTitle(pTitel);
        meinJDialog.setBounds(800, 500, 300, 70);
        meinJDialog.setModal(true);
        meinJDialog.add(new JLabel(pText));
        meinJDialog.setVisible(true);
    }
}

标签: javaswinguser-interfacejdialog

解决方案


您可以使用 aWindowListener来了解对话框是否失去焦点:

JDialog dialog = new JDialog(frame, false);//false for not modal
dialog.addWindowListener(new WindowAdapter() {
    public void windowDeactivated(WindowEvent e) {
        dialog.dispose();
    }
});
dialog.setVisible(true);

但它必须是一个非模态对话框。如果它是模态的,windowDeactivated则永远不会被调用。


推荐阅读