import java.awt.*; import java.awt.event.*; import java.applet.*; public class Rekenmachine extends Applet { public static TextArea displayRekenmachine; private Controller controller; public void init() { setLayout(new BorderLayout()); displayRekenmachine = new TextArea("", 1, 2, TextArea.SCROLLBARS_NONE); controller = new Controller(); add(displayRekenmachine, BorderLayout.CENTER); add(controller, BorderLayout.SOUTH); } } class Controller extends Panel { private Button[] cijferRij; private Button[] functieRij; private String functieSymbolen[] = { "+", "-", "/", "*", "%", "C", "=" }; public static StringBuffer displayBuffer = new StringBuffer(); Functies functie; public Controller() { setLayout(new GridLayout(5, 4)); cijferRij = new Button[10]; functieRij = new Button[6]; functie = new Functies(); for(int i = 0; i < cijferRij.length; i++) { cijferRij[i] = new Button(""+i); cijferRij[i].addActionListener(new setDisplay()); add(cijferRij[i]); } for(int i = 0; i < functieRij.length;i++) { functieRij[i] = new Button(functieSymbolen[i]); functieRij[i].addActionListener(new setFunctie()); add(functieRij[i]); } } class setDisplay implements ActionListener { public void actionPerformed(ActionEvent e) { int getal = 0; for(int i=0;i 0) { // Je moet nu weten wat de nieuwe gekozen functie is tweedeFunctieKeuze = keuze; // Invoer van tweede operandi, wordt telkens herhaalt na functie keuze invoer02 = Integer.parseInt(Rekenmachine.displayRekenmachine.getText()); // Eerst moet je kijken wat de vorige functie was en deze berekenen, // vervolgens de output op het scherm zetten en invoer01 deze waarde geven. if ( eersteFunctieKeuze == 0) { somVanInvoer = invoer01 + invoer02; invoer01 = somVanInvoer; setDisplay(somVanInvoer); } // Aftrekken is ook wel belangrijk if (eersteFunctieKeuze == 1) { somVanInvoer = invoer01 - invoer02; invoer01 = somVanInvoer; setDisplay(somVanInvoer); } // Delen is lame! if (eersteFunctieKeuze == 2) { somVanInvoer = invoer01 / invoer02; invoer01 = somVanInvoer; setDisplay(somVanInvoer); } // Vermenigvuldigen maakt veroorzaakt overpopulatie if (eersteFunctieKeuze == 3) { somVanInvoer = invoer01 * invoer02; invoer01 = somVanInvoer; setDisplay(somVanInvoer); } if (eersteFunctieKeuze == 4) { somVanInvoer = invoer01 % invoer02; invoer01 = somVanInvoer; setDisplay(somVanInvoer); } // Eerste functie keuze moet nu dus de tweede worden: eersteFunctieKeuze = tweedeFunctieKeuze; } aantalAanroepen++; } protected void optellen() { } protected void aftrekken() { } protected void delen() { } protected void vermenigvuldigen() { } protected void uitkomst() { } protected void setDisplay(int getal) { Controller.displayBuffer.delete(0, Controller.displayBuffer.length()); Rekenmachine.displayRekenmachine.setText(""+getal); } protected void displaySchoonmaken() { invoer01 = invoer02 = somVanInvoer = 0; Controller.displayBuffer.delete(0, Controller.displayBuffer.length()); Rekenmachine.displayRekenmachine.setText("0"); } }