import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.event.EventHandler; import javafx.event.ActionEvent; import javafx.geometry.Pos; public class Kalkulator extends Application { // trenger tilgang til disse i KnappBehandler TextField tall1, tall2; // tallene TextField resultat; // svaret @Override public void start(Stage teater) { VBox kulisser = new VBox(); kulisser.setAlignment(Pos.CENTER); HBox knappeBoks = new HBox(); knappeBoks.setAlignment(Pos.CENTER); tall1 = new TextField("tall1"); tall2 = new TextField("tall2"); resultat = new TextField("resultat"); Text erLik = new Text(" = "); Button pluss = new Button("+"); Button minus = new Button("-"); Button gange = new Button("*"); Button dele = new Button("/"); KnappBehandler handling = new KnappBehandler(); pluss.setOnAction(handling); minus.setOnAction(handling); gange.setOnAction(handling); dele.setOnAction(handling); knappeBoks.getChildren().addAll(pluss, minus, gange, dele); kulisser.getChildren().addAll(tall1, knappeBoks, tall2, erLik, resultat); teater.setTitle("Kalkulator"); teater.setScene(new Scene(kulisser, 250, 150)); teater.show(); } // indre klasse - handling som skal skje naar vi trykker paa knappene class KnappBehandler implements EventHandler { @Override public void handle(ActionEvent e) { Button trykket = (Button) e.getSource(); String knappeTekst = trykket.getText(); double tallInn1 = 0.0; double tallInn2 = 0.0; try { tallInn1 = Double.parseDouble(tall1.getText()); // leser inn tall tallInn2 = Double.parseDouble(tall2.getText()); // leser inn tall } catch (NumberFormatException eksept) { System.out.println("Ikke tall"); return; } if (knappeTekst.equals("+")) { resultat.setText(" " + (tallInn1 + tallInn2)); } else if (knappeTekst.equals("-")) { resultat.setText(" " + (tallInn1 - tallInn2)); } else if (knappeTekst.equals("*")) { resultat.setText(" " + tallInn1*tallInn2); } else if (knappeTekst.equals("/")) { if (tallInn2 != 0) { resultat.setText(" " + tallInn1/tallInn2); } else { System.out.println("Kan ikke dele p? 0"); } } } } }