import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class PasswordFieldTest extends JFrame implements ActionListener {
    private JLabel label = new JLabel("Enter password: ");
    private JLabel display = new JLabel();
    private String password = "charlespic";
    // the password field has 10 characters width
    private JPasswordField passwordField= new JPasswordField(10); 
    public PasswordFieldTest() {
	passwordField.setEchoChar('X');
	passwordField.addActionListener(this);
	
	display.setPreferredSize(new Dimension(100,18));
	
	getContentPane().add(label);
	getContentPane().add(passwordField, BorderLayout.EAST);
	getContentPane().add(display, BorderLayout.SOUTH);
    }
    
    public static void main(String[] args) {
        PasswordFieldTest f = new PasswordFieldTest();
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	f.pack();
	f.setVisible(true);
    }
    
    public void actionPerformed(ActionEvent e) {
	char[] array = passwordField.getPassword();
	if(isPasswordCorrect(array)) {
	    display.setText("Password is correct.");
	} else {
	    display.setText("Password is incorrect.");
	}
    }
    
    public boolean isPasswordCorrect(char[] array) {
	char[] passwordArray = password.toCharArray();
	if(array.length != passwordArray.length) {
	    return false;
	} 
	
	for(int i = 0; i < passwordArray.length; i++) {
	    if(passwordArray[i] != array[i]) {
		return false;
	    }
	}
	return true;
    }
}
	   
