java - 在构造函数中处理 JDialog

标签 java swing

我有一个条件,如果条件通过,我将显示一个 JDialog。如果失败,我只需要显示 JOption Pane 并处理 JDialog。前任。我必须在单击按钮时显示对话框,

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

public class MyDialog extends JDialog {
public MyDialog(String name){
    JLabel welcomeLable = new JLabel("Hi welcome");
    add(welcomeLable);
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    setSize(100, 100);
    if(name.equals("pass")){
        //Do nothing
    }else{
        dispose();
    }
}

public static void main(String[] d){
    MyDialog dialog = new  MyDialog("fail");
    dialog.setModal(true);
    dialog.show();
}
}

消息框显示验证消息,但仍显示对话框。怎么解决这个问题。 怎么解决这个问题。

最佳答案

将逻辑与对话框分开。您的对话框不应该决定是否应该显示它,这不是它的工作。让您的代码执行此操作...

public class MyDialog extends JDialog {
    public MyDialog(String name){
        JLabel welcomeLable = new JLabel("Hi welcome");
        add(welcomeLable);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        setSize(100, 100);
    }

    public static void main(String[] d){
        if(name.equals("pass")){
            MyDialog dialog = new  MyDialog("fail");
            dialog.setModal(true);
            dialog.show();
        }
    }
}

我还建议您考虑看看JOptionPane,它可以大大减少您可能需要使用的重复代码量。

看看How to Make Dialogs了解更多详情

关于java - 在构造函数中处理 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717366/

相关文章:

java - 测试自动化源的位置

java - 为什么要将点存储在二叉树中?

java - 如何通过操作添加列数据以修改其值

java - 如何在 Mockito 中监视对象的情况下调用真实方法?

java - JFrame简单应用

java - 如何检查使用@SessionAttributes创建的 session 是否存在(Spring MVC)

java - 消除 borderLayout 中 Jpanel 之间的间隙

java - 在高 DPI 计算机上调整 JAVA 应用程序项目 (Chromis POS) 的分辨率

java - 更改 jTextPane 中选定文本的颜色

Java Animation,以1x,1y的频率更新动画