import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
import com.fazecast.jSerialComm.*;
import javax.swing.text.*;
import java.sql.*;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;



 class Gui  {
	public static void main(String[] args)  {    

Scherm scherm = new Scherm();   
scherm.arduinoListener();
scherm.frameInstellingen();
scherm.paneel1();  
scherm.paneel2();
scherm.paneel3();
scherm.paneel4();
scherm.opneemPaneel();
scherm.toevoegenBijPaneel();
    }
}

class Scherm  extends JFrame  {

private JFrame f1;
private JPanel homeScreenPanel, scanPasPanel,pincodePanel,ingelogdPanel,opnemenPanel,incorrectPinMelding,meldingBlokkeren,passNotFoundMelding; 
private JButton btnNaarScanPasPanel,btnNaarHome,btnLogin,btnSKM,showMoneyButton,closePassNotFoundMelding; 
private JButton btnNaarOpnemen,opneemButton,opnemenNaarP4,closeMelding,closeMelding2;
private JButton plus10,min10,plus20,min20,plus50,min50; 
private JLabel welkomLabel,scanPasLabel,labelWW,opneemLabel,pinClearen,incorrectInloggenLabel,labelBlokkeren,passNotFoundLabel;
private JLabel char1,char2,char3,char4,plus,min,biljet10,biljet20,biljet50;
private JLabel biljet10Counter,biljet20Counter,biljet50Counter,totalCounter; 
private Boolean blocked;
private int num1=0,num2=0,num3=0;
private int lengteVanPincode=1;
private int incorrecteInlogPogingen;
private String correctPass;
private int intResultPrice,intResultPrice2,intResultPrice3,intTotaal;
private String pin1,pin2,pin3,pin4,result,result2,result3,resultTotal;
private Double balance;
private String pas;



public void frameInstellingen(){
f1 = new JFrame("GUI");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(1900,1000);
System.out.println("");
}

public void paneel1(){ 

homeScreenPanel= new JPanel();
homeScreenPanel.setBackground(Color.CYAN);
f1.add(homeScreenPanel);
homeScreenPanel.setVisible(true);

//button gemaakt met een coordinaat,grootte,style.
btnNaarScanPasPanel = new JButton("( # ) Verder");
btnNaarScanPasPanel.setBounds(750,350,240, 40);   
btnNaarScanPasPanel.setFont(new Font("Calibri",Font.PLAIN,30));

//label gemaakt met een coordinaat,grootte,style.
welkomLabel=new JLabel();     
welkomLabel.setText("Welkom bij de bank");
welkomLabel.setBounds(700, 300, 500, 50);
welkomLabel.setFont(new Font("Serif",Font.ITALIC,40));

f1.setVisible(true);

}

public void paneel2(){
 
    scanPasPanel = new JPanel();
scanPasPanel.setBackground(Color.CYAN);
f1.add(scanPasPanel);

//button gemaakt met een coordinaat,grootte,style.
btnNaarHome= new JButton(" ( * ) HOMESCREEN");   
btnNaarHome.setBounds(100,900,300,40);   
btnNaarHome.setFont(new Font("Calibri",Font.PLAIN,30));

scanPasLabel=new JLabel("Scan uw pas");     
scanPasLabel.setBounds(800, 300, 500, 50);
scanPasLabel.setFont(new Font("Serif",Font.ITALIC,40));

passNotFoundMelding=new JPanel();
passNotFoundMelding.setBounds(800,500,200,100);

passNotFoundLabel=new JLabel();
closePassNotFoundMelding=new JButton("(A) CLOSE");

passNotFoundMelding.setVisible(false); 
scanPasPanel.setVisible(false);
}


public void paneel3(){  //Paneel 3

pincodePanel = new JPanel();
pincodePanel.setBackground(Color.CYAN);

btnLogin= new JButton("( # )Login");
btnLogin.setBounds(1000,340,200, 40);
btnLogin.setFont(new Font("Serif",Font.BOLD,30));

labelWW = new JLabel();
labelWW.setText("pincode: ");
labelWW.setBounds(690,340,200, 40);
labelWW.setFont(new Font("Serif",Font.BOLD,30));

pinClearen = new JLabel();
pinClearen.setText("C = Clear pin");
pinClearen.setBounds(1200,500,200, 40);
pinClearen.setFont(new Font("Serif",Font.BOLD,30));

/* nieuwe labels aangemaakt om te tonen hoeveel cijfers van de pin je al hebt ingevult.*/
char1=new JLabel();
char2=new JLabel();
char3=new JLabel();
char4=new JLabel();

/*Locatie,style en grootte aanpassen. De tekst van de labels naar _ veranderen. */
char1.setBounds(810,340,50,50);char1.setFont(new Font("Calibri", Font.BOLD,50));
char1.setText("_");
char2.setBounds(860,340,50,50);char2.setFont(new Font("Calibri", Font.BOLD,50));
char2.setText("_");
char3.setBounds(910,340,50,50);char3.setFont(new Font("Calibri", Font.BOLD,50));
char3.setText("_");
char4.setBounds(960,340,50,50);char4.setFont(new Font("Calibri", Font.BOLD,50));
char4.setText("_");

        /*Buttons bij de meldingen */
        closeMelding=new JButton("(A) close");
        closeMelding2=new JButton("(A) close");

        /*Panelen met locatie en grootte van component */
        incorrectPinMelding=new JPanel();
        incorrectPinMelding.setBounds(800,500,200,100);
        meldingBlokkeren=new JPanel();
        meldingBlokkeren.setBounds(800,500,200,100);

        /*Labels bij de meldingen */
        incorrectInloggenLabel= new JLabel();
        labelBlokkeren=new JLabel();

        /*Alle panelen op false zetten */
        meldingBlokkeren.setVisible(false);
        incorrectPinMelding.setVisible(false);
        pincodePanel.setVisible(false);
}


public void paneel4(){
ingelogdPanel= new JPanel();
ingelogdPanel.setBackground(Color.CYAN);

btnSKM= new JButton("(B) Snel 50 euro opnemen");    //SnelKeuzeMenu button wordt hier aangemaakt
btnSKM.setBounds(100,840,400, 40);
btnSKM.setFont(new Font("Serif",Font.BOLD,30));

showMoneyButton = new JButton("(A) Check Balance");
showMoneyButton.setBounds(100,740,340, 40);
showMoneyButton.setFont(new Font("Serif",Font.BOLD,30));

btnNaarOpnemen= new JButton("(C) geld opnemen");
btnNaarOpnemen.setBounds(1300,740,340, 40);
btnNaarOpnemen.setFont(new Font("Serif",Font.BOLD,30));

ingelogdPanel.setVisible(false);
}


public void opneemPaneel(){
/*Objecten gemaakt bij de opneemPaneel */
opnemenPanel = new JPanel();
opneemLabel = new JLabel(" Hoeveel geld wil je opnemen?");
plus = new JLabel();
min= new JLabel();
biljet10 = new JLabel();
biljet20 = new JLabel();
biljet50 = new JLabel();
plus10=new JButton("(1)");
min10=new JButton("(2)");
plus20=new JButton("(4)");
min20=new JButton("(5)");
plus50=new JButton("(7)");
min50=new JButton("(8)");
opneemButton = new JButton("(#) opnemen");
opnemenNaarP4 = new JButton("(*) terug");
biljet10Counter = new JLabel();
biljet20Counter = new JLabel();
biljet50Counter = new JLabel();
totalCounter= new JLabel();

opnemenPanel.setBackground(Color.CYAN); // kleur van achtergrond

/*locatie en grootte van componenten */
opneemLabel.setBounds(800, 200, 500, 50);
plus.setBounds(750,250,50,50);
min.setBounds(820,250,50,50);
biljet10.setBounds(600,300,200,50);
biljet20.setBounds(600,350,200,50);
biljet50.setBounds(600,400,200,50);
plus10.setBounds(750,300,50,50);
min10.setBounds(800,300,50,50);
plus20.setBounds(750,350,50,50);
min20.setBounds(800,350,50,50);
plus50.setBounds(750,400,50,50);
min50.setBounds(800,400,50,50);
opneemButton.setBounds(800,500,240, 40);
opnemenNaarP4.setBounds(700,850,340, 40);
biljet10Counter.setBounds(900,300,50,50);
biljet20Counter.setBounds(900,350,50,50);
biljet50Counter.setBounds(900,400,50,50);
totalCounter.setBounds(900,450,500,50);

/*schrijfstijl en grootte van tekst */
opneemLabel.setFont(new Font("Serif",Font.ITALIC,40));
plus.setFont(new Font("Serif",Font.BOLD,40));
min.setFont(new Font("Serif",Font.BOLD,40));
biljet10.setFont(new Font("Serif",Font.BOLD,40));
biljet20.setFont(new Font("Serif",Font.BOLD,40));
biljet50.setFont(new Font("Serif",Font.BOLD,40));
opneemButton.setFont(new Font("Serif",Font.BOLD,30));
opnemenNaarP4.setFont(new Font("Serif",Font.BOLD,30));
biljet10Counter.setFont(new Font("Serif",Font.ITALIC,40));
biljet20Counter.setFont(new Font("Serif",Font.ITALIC,40));
biljet50Counter.setFont(new Font("Serif",Font.ITALIC,40));
totalCounter.setFont(new Font("Serif",Font.ITALIC,40));

/*int wordt omgezet naar String */
result = String.valueOf(num1);
result2 = String.valueOf(num2);
result3 = String.valueOf(num3);

/*tekst van labels aanpassen */
min.setText("-");
plus.setText("+");
biljet10.setText("10 Euro");
biljet20.setText("20 Euro");
biljet50.setText("50 Euro");
biljet10Counter.setText(result);
biljet20Counter.setText(result2);
biljet50Counter.setText(result3);


opnemenPanel.setVisible(false);// op false zetten
}


public void toevoegenBijPaneel(){ //alles wordt hier bij de panelen toegevoegd.
/*setLayout(null) om de locatie van alle componenten zelf te bepalen. */ 
homeScreenPanel.setLayout(null);
scanPasPanel.setLayout(null);
pincodePanel.setLayout(null);
ingelogdPanel.setLayout(null);
opnemenPanel.setLayout(null);

homeScreenPanel.add(welkomLabel);
homeScreenPanel.add(btnNaarScanPasPanel);
scanPasPanel.add(scanPasLabel);
scanPasPanel.add(passNotFoundMelding);
passNotFoundMelding.add(passNotFoundLabel);
passNotFoundMelding.add(closePassNotFoundMelding);
pincodePanel.add(labelWW);
pincodePanel.add(btnLogin);
pincodePanel.add(char1);
pincodePanel.add(char2); 
pincodePanel.add(char3);
pincodePanel.add(char4);
pincodePanel.add(pinClearen);
pincodePanel.add(incorrectPinMelding);
pincodePanel.add(meldingBlokkeren);
incorrectPinMelding.add(closeMelding);
incorrectPinMelding.add(incorrectInloggenLabel);
meldingBlokkeren.add(closeMelding2);
meldingBlokkeren.add(labelBlokkeren);
ingelogdPanel.add(btnSKM);
ingelogdPanel.add(showMoneyButton);
ingelogdPanel.add(btnNaarOpnemen);
opnemenPanel.add(opneemLabel);
opnemenPanel.add(opneemButton);
opnemenPanel.add(opnemenNaarP4);
opnemenPanel.add(biljet10);
opnemenPanel.add(biljet20);
opnemenPanel.add(biljet50);
opnemenPanel.add(plus10);
opnemenPanel.add(min10);
opnemenPanel.add(plus20);
opnemenPanel.add(min20);
opnemenPanel.add(plus50);
opnemenPanel.add(min50);
opnemenPanel.add(plus);
opnemenPanel.add(min);
opnemenPanel.add(biljet10Counter);  
opnemenPanel.add(biljet20Counter);
opnemenPanel.add(biljet50Counter);
opnemenPanel.add(totalCounter);
}



public void arduinoListener(){
		SerialPort comPort = SerialPort.getCommPort("COM7");
		
		comPort.setBaudRate(9600);
		
		//open the port
		comPort.openPort();
	
		//create a listener and start listening
		comPort.addDataListener(new SerialPortDataListener() {
			@Override
			public int getListeningEvents() { 
				return SerialPort.LISTENING_EVENT_DATA_AVAILABLE; 
			}
			@Override
			public void serialEvent(SerialPortEvent event)
			{
				if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE)
				return; //wait until we receive data
			
				byte[] newData = new byte[comPort.bytesAvailable()]; //receive incoming bytes
				comPort.readBytes(newData, newData.length); //read incoming bytes
		String serialData = new String(newData); //convert bytes to string
              
      
        try{
            /*   Database connectie */
            String myDriver = "org.gjt.mm.mysql.Driver";
            String myUrl = "jdbc:mysql://localhost/projectdatabase";
            Class.forName(myDriver);
            Connection conn = DriverManager.getConnection(myUrl, "root", "");

            
            System.out.println(serialData);

			  if( homeScreenPanel.isVisible() && serialData.equals("#") ){// Als homeScreenPanel is visible en er wordt op de # knop gedrukt.
                 homeScreenPanel.setVisible(false);  //sluit homeScreenPanel
                 f1.validate();
                 f1.repaint();
                 f1.invalidate();
                 scanPasPanel.setVisible(true);   // open scanPasPanel
                 scanPasPanel.add(btnNaarHome);     //scanPasPanel krijgt een button die terug naar homeScreenPanel kan.
              }

       
if(scanPasPanel.isVisible() && serialData.length()!=8){   
    BufferedReader reader =
    new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
serialData=name;
}

if((scanPasPanel.isVisible() || pincodePanel.isVisible() || ingelogdPanel.isVisible() ) && serialData.equals("*") && !meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible() ){// als het op Paneel2,3,4 is. En er wordt op * gedrukt. Ga terug naar Home
    scanPasPanel.setVisible(false);
    pincodePanel.setVisible(false);
    ingelogdPanel.setVisible(false);
    f1.validate();
    f1.repaint();
    f1.invalidate();
    homeScreenPanel.setVisible(true);
    }


if(serialData.length()==8 && scanPasPanel.isVisible()){ //als scanPasPanel visible is en er wordt iets gelezen dat 8 karakter lang is.
    pas= serialData;
    String query = ("SELECT * FROM accounts WHERE Pasnummer ='"+ pas +"' " ); 
    
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(query);

    if (rs.next() ){

    correctPass = rs.getString("Pincode");
     balance= rs.getDouble("Balance");

     scanPasPanel.setVisible(false);
     f1.validate();
     f1.repaint();
     f1.invalidate(); 
     pincodePanel.add(btnNaarHome);
     f1.getContentPane().add(pincodePanel);
    pincodePanel.setVisible(true);     
    } 

}



    if(pincodePanel.isVisible() && !meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible()){
        String query = ("SELECT * FROM accounts WHERE Pasnummer ='"+ pas +"' " ); //+serialData);
    
    Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(query);
 
         if (rs.next() ){
    
            incorrecteInlogPogingen=rs.getInt("aantalfouten");
            System.out.format("Pincode: %s, %s, %s\n", correctPass, balance, incorrecteInlogPogingen);
                if(incorrecteInlogPogingen==3){
                 blocked=true;
                     }else{
                         blocked=false;
          }
         }
       }

       if(!meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible()){
        /* Dit wordt gebruikt om de pincode, die 4 karakters lang is te lezen */
         if(serialData.equals("1") && pincodePanel.isVisible()  ){
            if(lengteVanPincode==1) {char1.setText("X");pin1="1";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="1";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="1";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="1";}
			lengteVanPincode++;//Elke keer als je een getal invoerd,de lengteVanPincode groter.
        }
         if(serialData.equals("2") && pincodePanel.isVisible()){
            if(lengteVanPincode==1) {char1.setText("X");pin1="2";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="2";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="2";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="2";}
			lengteVanPincode++;
        }
         if(serialData.equals("3") && pincodePanel.isVisible() ){
            if(lengteVanPincode==1) {char1.setText("X");pin1="3";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="3";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="3";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="3";}
			lengteVanPincode++;
        }
         if(serialData.equals("4") && pincodePanel.isVisible() ){
            if(lengteVanPincode==1) {char1.setText("X");pin1="4";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="4";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="4";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="4";}
			lengteVanPincode++;
        }
         if(serialData.equals("5") && pincodePanel.isVisible() ){
            if(lengteVanPincode==1) {char1.setText("X");pin1="5";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="5";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="5";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="5";}
			lengteVanPincode++;
        }
         if(serialData.equals("6") && pincodePanel.isVisible()){
            if(lengteVanPincode==1) {char1.setText("X");pin1="6";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="6";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="6";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="6";}
			lengteVanPincode++;
        }
         if(serialData.equals("7") && pincodePanel.isVisible() ){
            if(lengteVanPincode==1) {char1.setText("X");pin1="7";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="7";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="7";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="7";}
			lengteVanPincode++;
        }
         if(serialData.equals("8") && pincodePanel.isVisible()){
            if(lengteVanPincode==1) {char1.setText("X");pin1="8";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="8";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="8";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="8";}
			lengteVanPincode++;
        }
         if(serialData.equals("9") && pincodePanel.isVisible()){
            if(lengteVanPincode==1) {char1.setText("X");pin1="9";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="9";}
			if(lengteVanPincode==3) {char3.setText("X");pin3="9";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="9";}
			lengteVanPincode++;
        }
         if(serialData.equals("0") && pincodePanel.isVisible()){
            if(lengteVanPincode==1) {char1.setText("X");pin1="0";}
			if(lengteVanPincode==2) {char2.setText("X");pin2="0";} 
			if(lengteVanPincode==3) {char3.setText("X");pin3="0";}
			if(lengteVanPincode==4) {char4.setText("X");pin4="0";}
			lengteVanPincode++;
        }
        if(serialData.equals("C") && pincodePanel.isVisible()){ // iemand druk op C en is op de pincodepaneel.
            char1.setText("_");                //reset de karakters
            char2.setText("_");
            char3.setText("_");
            char4.setText("_");
            lengteVanPincode=0;               //pin weer leegmaken.
        }
    }
        	  
String ingevoerdePin = String.valueOf(pin1 + pin2 + pin3 + pin4);// alle 4 Strings worden samen 1 String
    

         
    if(!pincodePanel.isVisible()){  //Als pincodePanel niet zichtbaar is.
        /*De pincode wordt omgezet naar streepjes om te laten zien dat de pin leeg is*/
    char1.setText("_");
    char2.setText("_");
    char3.setText("_");
    char4.setText("_");
    ingevoerdePin="____";
    lengteVanPincode=1;         //lengteVanPincode wordt weer naar 1 geplaats.

    }	


if(pincodePanel.isVisible() && ingevoerdePin.equals(correctPass) && lengteVanPincode==5 && serialData.equals("#") && blocked==false && !meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible()){//Het staat op paneel 3. ingevoerdePin is correct en lengteVanPincode is 5. En je drukt op #. En pas is niet geblokeerd.
    pincodePanel.setVisible(false);
    f1.validate();
    f1.repaint();
    f1.invalidate();
    ingelogdPanel.add(btnNaarHome);
    f1.getContentPane().add(ingelogdPanel);
    ingelogdPanel.setVisible(true);
    incorrecteInlogPogingen=0;
    String query = ("UPDATE accounts SET aantalfouten=" + incorrecteInlogPogingen + " WHERE Pasnummer='"+ pas +"' ");
    Statement st = conn.createStatement(); 
     st.executeUpdate(query);
}

if(lengteVanPincode>=5){
    lengteVanPincode=5;
}


if(pincodePanel.isVisible() && !ingevoerdePin.equals(correctPass)  && serialData.equals("#") && blocked==false && !meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible()){
    incorrecteInlogPogingen+=1;
    String query = ("UPDATE accounts SET aantalfouten=" + incorrecteInlogPogingen + " WHERE Pasnummer='"+ pas +"' ");
    Statement st = conn.createStatement(); 
     st.executeUpdate(query);

    incorrectInloggenLabel.setText("incorrecte inlogpogingen: " + incorrecteInlogPogingen);
     incorrectPinMelding.setVisible(true);
        }

        if((incorrectPinMelding.isVisible() || meldingBlokkeren.isVisible()) && serialData.equals("A") ){
            incorrectPinMelding.setVisible(false);
            meldingBlokkeren.setVisible(false);
        }




if(blocked==true && pincodePanel.isVisible() && serialData.equals("#") && !meldingBlokkeren.isVisible() && !incorrectPinMelding.isVisible()){

    labelBlokkeren.setText("Pas is geblokkeerd");
    meldingBlokkeren.setVisible(true);
}

if(ingelogdPanel.isVisible() && serialData.equals("C")){
    ingelogdPanel.setVisible(false);
    f1.validate();
    f1.repaint();
    f1.invalidate();
    f1.getContentPane().add(opnemenPanel);
    opnemenPanel.setVisible(true);
}
if(ingelogdPanel.isVisible() && serialData.equals("A")){
    JOptionPane.showMessageDialog(null,"Jouw balance = " +balance);
}

if(ingelogdPanel.isVisible() && serialData.equals("B")){
    if(balance>=50){
        JOptionPane.showMessageDialog(null, "U krijgt nu 50 euro");
        balance-=50;
        scanPasPanel.setVisible(false);
         pincodePanel.setVisible(false);
         ingelogdPanel.setVisible(false);
         f1.validate();
         f1.repaint();
         f1.invalidate();
         homeScreenPanel.setVisible(true);
            }
            if(balance<50){
            JOptionPane.showMessageDialog(null, "U heeft geen geld meer om 50 euro op te nemen.");
            }
}

if(opnemenPanel.isVisible() && serialData.equals("*")){
    opnemenPanel.setVisible(false);
    f1.validate();
    f1.repaint();
    f1.invalidate();
    f1.getContentPane().add(ingelogdPanel);
    ingelogdPanel.setVisible(true);
}

///////////////////////////////////////////
if(opnemenPanel.isVisible() && serialData.equals("1")){
    num1++;
    result=String.valueOf(num1);
    biljet10Counter.setText(result);
    
    intResultPrice=Integer.valueOf(result)*10;
  
  
}
if(opnemenPanel.isVisible() && serialData.equals("2")){
    num1--;
    
    if(num1<0){
        num1=0;
    }
    result=String.valueOf(num1);
    biljet10Counter.setText(result);
    
    intResultPrice=Integer.valueOf(result)*10;
}
if(opnemenPanel.isVisible() && serialData.equals("4")){
    num2++;
    result2=String.valueOf(num2);
    biljet20Counter.setText(result2);
    intResultPrice2=Integer.valueOf(result2) * 20;
}
if(opnemenPanel.isVisible() && serialData.equals("5")){
    num2--;
    
    if(num2<0){
        num2=0;
    }
    result2=String.valueOf(num2);
    biljet20Counter.setText(result2);
   intResultPrice2=Integer.valueOf(result2) * 20;
}



if(opnemenPanel.isVisible() && serialData.equals("7")){
    num3++;
    result3=String.valueOf(num3);
    biljet50Counter.setText(result3);
    intResultPrice3=Integer.valueOf(result3)*50;
}
if(opnemenPanel.isVisible() && serialData.equals("8")){
    num3--;
    
    if(num3<0){
        num3=0;
    }
    result3=String.valueOf(num3);
    biljet50Counter.setText(result3);
    intResultPrice3=Integer.valueOf(result3) * 50;
}
intTotaal=intResultPrice+intResultPrice2+intResultPrice3;
resultTotal=String.valueOf(intTotaal);
totalCounter.setText(resultTotal);

if(opnemenPanel.isVisible() && serialData.equals("#")){

    if(balance>=intTotaal){
    balance-=intTotaal;
//////////////////////////////////////////
String query = ("UPDATE accounts SET Balance=" + balance + " WHERE Pasnummer='"+ pas +"' ");
Statement st = conn.createStatement(); 
 st.executeUpdate(query);

    System.out.println("opnemen gelukt. balance = " + balance);
    f1.validate();
    f1.repaint();
    f1.invalidate();
    homeScreenPanel.setVisible(true);
    }else {
        JOptionPane.showMessageDialog(null, "niet genoeg geld");
    }
}
///////////////////////////////////////////////////////////

//st.close();
}
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}



			}
		});
 }




}




