import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;

public class RekenMachine extends JFrame implements ActionListener {

Button knop0, knop1, knop2, knop3, knop4, knop5, knop6, knop7, knop8, knop9, delen, maal, min, gelijk, plus, reset, pow;
TextField tekstvak;
String display1="", display2;
Font f;
int bewerking;
private JPanel panel;

public static void main(String[] args) {
        RekenMachine frame = new RekenMachine();
        
        frame.setSize(200, 280);
        frame.createGUI();
        frame.show();
    }

public void createGUI() {
	
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	Container window = getContentPane();
    window.setLayout(null);
	//geen layoutmanager
	
	panel = new JPanel();
    panel.setPreferredSize(new Dimension(180, 180));
    panel.setBackground(Color.white);
    window.add(panel);

	knop7=new Button("7");
	knop7.addActionListener(this);
	knop7.setBounds(25,60,30,30);//positie en afmeting
	knop7.setBackground(Color.green);//kleuren van de knoppen
	knop7.setForeground(Color.black);

	knop8=new Button("8");
	knop8.addActionListener(this);
	knop8.setBounds(55,60,30,30);//positie en afmeting
	knop8.setBackground(Color.green);//kleuren van de knoppen
	knop8.setForeground(Color.black);

	knop9=new Button("9");
	knop9.addActionListener(this);
	knop9.setBounds(85,60,30,30);//positie en afmeting
	knop9.setBackground(Color.green);//kleuren van de knoppen
	knop9.setForeground(Color.black);

	delen=new Button("/");
	delen.addActionListener(this);
	delen.setBounds(115,60,30,30);//positie en afmeting
	delen.setBackground(Color.black);//kleuren van de knoppen
	delen.setForeground(Color.red);

	knop4=new Button("4");
	knop4.addActionListener(this);
	knop4.setBounds(25,90,30,30);//positie en afmeting
	knop4.setBackground(Color.green);//kleuren van de knoppen
	knop4.setForeground(Color.black);

	knop5=new Button("5");
	knop5.addActionListener(this);
	knop5.setBounds(55,90,30,30);//positie en afmeting
	knop5.setBackground(Color.green);//kleuren van de knoppen
	knop5.setForeground(Color.black);

	knop6=new Button("6");
	knop6.addActionListener(this);
	knop6.setBounds(85,90,30,30);//positie en afmeting
	knop6.setBackground(Color.green);//kleuren van de knoppen
	knop6.setForeground(Color.black);

	maal=new Button("x");
	maal.addActionListener(this);
	maal.setBounds(115,90,30,30);//positie en afmeting
	maal.setBackground(Color.black);//kleuren van de knoppen
	maal.setForeground(Color.red); 

	knop1=new Button("1");
	knop1.addActionListener(this);
	knop1.setBounds(25,120,30,30);//positie en afmeting
	knop1.setBackground(Color.green);//kleuren van de knoppen
	knop1.setForeground(Color.black);

	knop2=new Button("2");
	knop2.addActionListener(this);
	knop2.setBounds(55,120,30,30);//positie en afmeting
	knop2.setBackground(Color.green);//kleuren van de knoppen
	knop2.setForeground(Color.black);

	knop3=new Button("3");
	knop3.addActionListener(this);
	knop3.setBounds(85,120,30,30);//positie en afmeting
	knop3.setBackground(Color.green);//kleuren van de knoppen
	knop3.setForeground(Color.black);

	min=new Button("-");
	min.addActionListener(this);
	min.setBounds(115,120,30,30);//positie en afmeting
	min.setBackground(Color.black);//kleuren van de knoppen
	min.setForeground(Color.red);

	reset=new Button("C");
	reset.addActionListener(this);
	reset.setBounds(25,150,30,30);//positie en afmeting
	reset.setBackground(Color.black);//kleuren van de knoppen
	reset.setForeground(Color.red);

	knop0=new Button("0");
	knop0.addActionListener(this);
	knop0.setBounds(55,150,30,30);//positie en afmeting
	knop0.setBackground(Color.green);//kleuren van de knoppen
	knop0.setForeground(Color.black);

	gelijk=new Button("=");
	gelijk.addActionListener(this);
	gelijk.setBounds(85,150,30,30);//positie en afmeting
	gelijk.setBackground(Color.black);//kleuren van de knoppen
	gelijk.setForeground(Color.yellow);

	plus=new Button("+");
	plus.addActionListener(this );
	plus.setBounds(115,150,30,30);//positie en afmeting
	plus.setBackground(Color.black);//kleuren van de knoppen
	plus.setForeground(Color.red);
	
	pow=new Button("Pow");
	pow.addActionListener(this );
	pow.setBounds(25,180,30,30);//positie en afmeting
	pow.setBackground(Color.black);//kleuren van de knoppen
	pow.setForeground(Color.red);	

	f = new Font("SansSerif", Font.PLAIN, 20);
	tekstvak=new TextField();
	tekstvak.setBounds(25,25,120,30);//positie en afmeting scherm
	tekstvak.setFont(f);
	tekstvak.setBackground(Color.green);//kleuren van de knoppen
	tekstvak.setForeground(Color.black);

	window.add(tekstvak);
	window.add(knop1);
	window.add(knop2);
	window.add(knop3);
	window.add(knop4);
	window.add(knop5);
	window.add(knop6);
	window.add(knop7);
	window.add(knop8);
	window.add(knop9);
	window.add(knop0);
	window.add(delen);
	window.add(maal);
	window.add(min);
	window.add(gelijk);
	window.add(plus);
	window.add(reset);
	window.add(pow);


   }

public void actionPerformed(ActionEvent event) {
   
   Object bronDerGebeurtenis = event.getSource();
   if (bronDerGebeurtenis.equals(knop1)) { display(1); }
   if (bronDerGebeurtenis.equals(knop2)) { display(2); }
   if (bronDerGebeurtenis.equals(knop3)) { display(3); }
   if (bronDerGebeurtenis.equals(knop4)) { display(4); }	
   if (bronDerGebeurtenis.equals(knop5)) { display(5); }
   if (bronDerGebeurtenis.equals(knop6)) { display(6); }
   if (bronDerGebeurtenis.equals(knop7)) { display(7); }
   if (bronDerGebeurtenis.equals(knop8)) { display(8); }
   if (bronDerGebeurtenis.equals(knop9)) { display(9); }
   if (bronDerGebeurtenis.equals(knop0)) { display(0); }
   if (bronDerGebeurtenis.equals(delen)) { delen(); }
   if (bronDerGebeurtenis.equals(maal))  { maal(); }
   if (bronDerGebeurtenis.equals(min))   { min(); }
   if (bronDerGebeurtenis.equals(gelijk)) { gelijk(); }
   if (bronDerGebeurtenis.equals(plus))  { plus(); }
   if (bronDerGebeurtenis.equals(reset)) { reset(); }
   if (bronDerGebeurtenis.equals(pow)) { pow(); }   


   }

public void display(int getal) {
	display1=display1+getal;
	tekstvak.setText(display1);
   }


public void reset() {
	display1="";
	tekstvak.setText(display1);
   }

public void delen() {
	display2=display1;
	display1="";
	bewerking = 4;
   }

public void maal() {
	display2=display1;
	display1="";
	bewerking = 3;
   }

public void min() {
	display2=display1;
	display1="";
	bewerking = 2;
   }

public void plus() {
	display2=display1;
	display1="";
	bewerking = 1;
   }
   
public void pow() {
	
	//vul de code aan
}   

public void gelijk() {

	switch (bewerking) {
		case 1:display1=""+(Integer.parseInt(display1)+Integer.parseInt(display2));
		tekstvak.setText(display1);
		break;
		case 2:display1=""+(Integer.parseInt(display2)-Integer.parseInt(display1));
		tekstvak.setText(display1);
		break;
		case 3:display1=""+(Integer.parseInt(display1)*Integer.parseInt(display2));
		tekstvak.setText(display1);
		break;
		case 4:display1=""+(Integer.parseInt(display2)/Integer.parseInt(display1));
		tekstvak.setText(display1);
		//vul de code aan
		break;
	}
   }


}
