Java 获取两个JDialog实例

Java 获取两个JDialog实例,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,我正在用java创建一个特定的项目。 我添加了一个按钮,在一个jframe上注册用户,在按钮上单击第一个jframe dispose,第二个打开,在这里我添加了一个返回按钮,以转到第一个框架和登录按钮。单击“登录”按钮时,将显示jdialog。 (I扩展了jdialog类) 我发现,如果我单击“上一步”按钮,然后再次单击“注册”按钮,第二个jframe就会打开,这很正常,但当我单击“登录”时,会出现两个jdialog实例。 下面是第一个JFrame按钮的代码 frontsignbutton.ad

我正在用java创建一个特定的项目。 我添加了一个按钮,在一个jframe上注册用户,在按钮上单击第一个jframe dispose,第二个打开,在这里我添加了一个返回按钮,以转到第一个框架和登录按钮。单击“登录”按钮时,将显示jdialog。 (I扩展了jdialog类) 我发现,如果我单击“上一步”按钮,然后再次单击“注册”按钮,第二个jframe就会打开,这很正常,但当我单击“登录”时,会出现两个jdialog实例。 下面是第一个JFrame按钮的代码

frontsignbutton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                new SignUpNew().buildDesign();
                frontframe.dispose();

            }
        });
第二个呢

login.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                new Login();    
            }

        });
和JDialog代码

public class Login extends JDialog {
    private JLabel usernametext = new JLabel("User Name");
    private JLabel userpasswordtext = new JLabel("Password");
    private JLabel message = new JLabel();
    private JTextField userfield =  new JTextField();
    private JPasswordField password = new JPasswordField();
    private JButton submit = new JButton("Submit");
    {
        setTitle("Login");
        setLayout(null);
        setSize(400, 300);
        setLocation(400, 300);
        setVisible(true);
        setResizable(false);
        usernametext.setBounds(20, 20, 80, 10);
        userpasswordtext.setBounds(20, 80, 80, 10);
        userfield.setBounds(150, 20, 100, 20);
        password.setBounds(150, 80, 100, 20);
        submit.setBounds(75, 140, 100, 30);
        message.setBounds(140, 240, 230, 30);
        add(usernametext);
        add(userpasswordtext);
        add(userfield);
        add(password);
        add(submit);
        add(message);
    }
你知道为什么会这样吗。我想解决这个问题。

请提供一个解决方案,这样我们也可以重现您的问题,并为您调试解决方案。请不要发布整个项目,而是创建一个新的小型可运行类(或最多2个类),以演示您的问题。