import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//import javax.swing.text.PlainDocument;
import java.util.Arrays;


 class Gui  {
	public static void main(String[] args)  {    

Scherm scherm = new Scherm();    

    }
}

class Scherm  extends JFrame implements ActionListener  {//KeyListener

private JFrame f1;
private JPanel p1, p2,p3,p4;
private JButton btnNaarP2,btnNaarP1,btnNaarP3,btnLogin;
private JPasswordField passwordField;
private JLabel label1,label2,labelWW;
private char getWW;


Scherm() {

  
Login();  
FrameInstellingen();
Paneel1();
Paneel2();
Paneel3();
Paneel4();
ToevoegenBijPaneel();

}

public void Login(){
passwordField = new JPasswordField(4);
passwordField.setBounds(800,350,140, 30);
passwordField.addActionListener(this);

labelWW = new JLabel();
labelWW.setText("ww: ");
labelWW.setBounds(690,340,100, 40);
labelWW.setFont(new Font("Serif",Font.BOLD,30));

/*
PlainDocument document = (PlainDocument) passwordField.getDocument();
        document.setDocumentFilter(new DocumentFilter() {
 //@Override
            public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
                String string = fb.getDocument().getText(0, fb.getDocument().getLength()) + text;

                if (string.length() <= 4) {
                    super.replace(fb, offset, length, text, attrs); //To change body of generated methods, choose Tools | Templates.
                }
            }

        });
*/



}

public void FrameInstellingen(){
f1 = new JFrame("GUI");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(1900,1000);
f1.setVisible(true);

}


public void Paneel1(){ 
p1= new JPanel();
p1.setBackground(Color.CYAN);
f1.add(p1);
//button gemaakt met een coordinaat,grootte,style.
btnNaarP2 = new JButton("Verder");
btnNaarP2.setBounds(800,350,140, 40);   
btnNaarP2.setFont(new Font("Calibri",Font.PLAIN,30));
btnNaarP2.addActionListener(this);


//label gemaakt met een coordinaat,grootte,style.
label1=new JLabel();     
label1.setText("Welkom bij de bank");
label1.setBounds(700, 300, 500, 50);
label1.setFont(new Font("Serif",Font.ITALIC,40));

}


public void Paneel2(){
    p2 = new JPanel();
p2.setBackground(Color.CYAN);
f1.add(p2);

//button gemaakt met een coordinaat,grootte,style.
btnNaarP1= new JButton("Terug");   
btnNaarP1.setBounds(100,900,140,40);   
btnNaarP1.setFont(new Font("Calibri",Font.PLAIN,30));
btnNaarP1.addActionListener(this);


//button gemaakt met een coordinaat,grootte,style.
btnNaarP3= new JButton("Volgende");   
btnNaarP3.setBounds(800,900,180,40);   
btnNaarP3.setFont(new Font("Calibri",Font.PLAIN,30));
btnNaarP3.addActionListener(this);

label2=new JLabel("Scan uw pas");     
label2.setBounds(700, 300, 500, 50);
label2.setFont(new Font("Serif",Font.ITALIC,40));

       
}


public void Paneel3(){  //Paneel 3

    p3 = new JPanel();
p3.setBackground(Color.CYAN);


btnLogin= new JButton("Login");
btnLogin.setBounds(1000,340,140, 40);
btnLogin.setFont(new Font("Serif",Font.BOLD,30));
btnLogin.addActionListener(this);

}
public void Paneel4(){
p4= new JPanel();
p4.setBackground(Color.CYAN);
}



public void ToevoegenBijPaneel(){ //alles wordt hier bij de panelen toegevoegd.
    
p1.setLayout(null);
p2.setLayout(null);
p3.setLayout(null);
p1.add(label1);
p1.add(btnNaarP2);
p2.add(btnNaarP1);
p2.add(btnNaarP3);
p2.add(label2);
p3.add(passwordField); 
p3.add(labelWW);
p3.add(btnLogin);

}


//@override
    public void actionPerformed(ActionEvent ae) {// In deze method zorgt je ervoor dat de knoppen iets doen als je erop drukt.
        String action = ae.getActionCommand();


//String getWW = String.valueOf(passwordField.getPassword());
char []getWW=passwordField.getPassword();



        if (ae.getSource()== btnNaarP2) {  

p1.setVisible(false);
p3.setVisible(false);
f1.validate();
f1.repaint();
f1.invalidate();
p2.setVisible(true);
        }


  if (ae.getSource()== btnNaarP1) {  

p2.setVisible(false);
p3.setVisible(false);
f1.validate();
f1.repaint();
f1.invalidate();
p1.setVisible(true);
        }

  if (ae.getSource()== btnNaarP3) {  

p1.setVisible(false);
p2.setVisible(false);
f1.validate();
f1.repaint();
f1.invalidate();
f1.getContentPane().add(p3);
p3.setVisible(true);
        }


 if(ae.getSource()==btnLogin) {  
     System.out.println(getWW);
if(performCheck(getWW)){

    JOptionPane.showMessageDialog(null, "Correct password");
p1.setVisible(false);
p2.setVisible(false);
p3.setVisible(false);
f1.validate();
f1.repaint();
f1.invalidate();
f1.getContentPane().add(p4);
p4.setVisible(true);
                } else {
                    JOptionPane.showMessageDialog(null, "Incorrect password");
              
 
}
}



    }
 private boolean performCheck(char[] input) {
        boolean isCorrect = false;
       char[] correctPass = { '0', '0', '0' ,'0'};
int i;
        //for(i=0;i<=3;i++){
        if (input.length != correctPass.length) {
            isCorrect = false;
        }
        if (Arrays.equals(input, correctPass)) {
            isCorrect = true;
        }
      
        return isCorrect;
    }



    


}


