import javax.swing.JDialog;
import javax.swing.JPasswordField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import java.awt.Component;

public class MyDialog extends JDialog implements ActionListener
{
    private static final int MATCH = 0;
    private static final String ACTUAL_PASSWORD = "123456";
    private JPasswordField aPasswordField;
    private JLabel aLabel;

    public MyDialog()
    {
        aLabel = new JLabel("Enter password");
        aLabel.setBounds(50,20,120,20);
        aPasswordField = new JPasswordField();
        aPasswordField.setBounds(50,40,120,20);
        aPasswordField.addActionListener(this);
        setLayout(null);
        addControls();
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    }

    public void addControls()
    {
        add(aLabel);
        add(aPasswordField);
    }


    public void actionPerformed(ActionEvent e)
    {
	Component aComponent = (Component) e.getSource();
	if (aComponent instanceof JPasswordField)
	{
	    JPasswordField aPasswordField = (JPasswordField) aComponent;
	    String passWordEntered = new String(aPasswordField.getPassword());
	    if (passWordEntered.compareTo(ACTUAL_PASSWORD) == MATCH)
	    {
		loginSuccess();
	    }
	    else
	    {
		loginFailed();
	    }

	}
    }


    public void cleanUp(JDialog popup)
    {
	try {
	    Thread.sleep(3000); 
	}
	catch (InterruptedException ex)  { 
	    System.out.println("Pausing of program was interrupted");
	}
	this.setVisible(false);
	this.dispose();
     this.setVisible(false);
	popup.setVisible(false);
	popup.dispose();
      this.dispose();
	System.exit(0);
    }
    public void loginSuccess()
    {
	JDialog success = new JDialog();
	success.setTitle("Login successful!");
	success.setSize(200,50);
	success.setVisible(true);
	cleanUp(success);
    }

    public void loginFailed()
    {
          JDialog failed = new JDialog();
	  failed.setTitle("Login failed!");
	  failed.setSize(200,50);
	  failed.setVisible(true);
	  cleanUp(failed);
    }
}
