자바(JavaFX) - 계산기

자바(JavaFX) - 계산기

1. main.java

package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { // fxml layout loader // FXMLLoader loader = new FXMLLoader(); // loader.setLocation(getClass().getResource("MainView.fxml")); // // window root // BorderPane mainLayoutAnchorPane = (BorderPane) loader.load(); // Scene scene = new Scene(mainLayoutAnchorPane); // scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); // primaryStage.setScene(scene); Parent root = FXMLLoader.load(getClass().getResource("MainView.fxml")); primaryStage.setScene(new Scene(root)); primaryStage.setTitle("first javafx"); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }

2. MainView.fxml

3. Controller.java

package application; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.text.Text; public class Controller { private String operator = ""; private int x = 0; // 기존의 숫자 private Model model = new Model(); @FXML private Text result; @FXML private void operand(ActionEvent event) { result.setText(result.getText() + ((Button) event.getSource()).getText()); } @FXML private void operator(ActionEvent event) { if(((Button) event.getSource()).getText().equals("=")) { result.setText(model.calculator(operator, x, Integer.parseInt(result.getText())) + "");; } else { operator = ((Button) event.getSource()).getText(); x = Integer.parseInt(result.getText()); result.setText(""); } } }

4. Model.java

package application; public class Model { public int calculator(String operator, int x, int y ) { if(operator.contentEquals("+")) { return x+y; } else if(operator.contentEquals("-")) { return x-y; } else if(operator.contentEquals("*")) { return x*y; } else { return x / y; } } }

<결과>

from http://streamls.tistory.com/403 by ccl(A) rewrite - 2021-10-18 01:01:40