AI를 활용한 개발이야기
windsurf에서 계산기 프로그램 만들기
함바퍼포
2025. 4. 3. 07:00
728x90
반응형
SMALL
|JAVA 계산기 프로그램
package com.calculator;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Calculator extends Application {
private TextField display;
private String currentNumber = "";
private String operator = "";
private double result = 0;
private boolean startNewNumber = true;
@Override
public void start(Stage primaryStage) {
// 계산기 디스플레이 생성
display = new TextField();
display.setEditable(false);
display.setAlignment(Pos.CENTER_RIGHT);
display.setStyle("-fx-font-size: 20px; -fx-background-color: #f0f0f0;");
// 버튼 그리드 생성
GridPane buttonGrid = new GridPane();
buttonGrid.setHgap(5);
buttonGrid.setVgap(5);
buttonGrid.setPadding(new Insets(5));
// 숫자 버튼 생성
for (int i = 9; i >= 0; i--) {
Button button = createButton(String.valueOf(i));
buttonGrid.add(button, (9-i) % 3, (9-i) / 3);
}
// 연산자 버튼 생성
Button plusBtn = createButton("+");
Button minusBtn = createButton("-");
Button multiplyBtn = createButton("×");
Button divideBtn = createButton("÷");
Button equalsBtn = createButton("=");
Button clearBtn = createButton("C");
Button decimalBtn = createButton(".");
// 연산자 버튼 배치
buttonGrid.add(plusBtn, 3, 0);
buttonGrid.add(minusBtn, 3, 1);
buttonGrid.add(multiplyBtn, 3, 2);
buttonGrid.add(divideBtn, 3, 3);
buttonGrid.add(decimalBtn, 2, 3);
buttonGrid.add(equalsBtn, 1, 3);
buttonGrid.add(clearBtn, 0, 3);
// 레이아웃 구성
VBox root = new VBox(10);
root.setPadding(new Insets(10));
root.getChildren().addAll(display, buttonGrid);
root.setStyle("-fx-background-color: #ffffff;");
// 씬 설정
Scene scene = new Scene(root);
primaryStage.setTitle("JavaFX Calculator");
primaryStage.setScene(scene);
primaryStage.show();
}
private Button createButton(String text) {
Button button = new Button(text);
button.setMinSize(50, 50);
button.setStyle("-fx-font-size: 18px;");
button.setOnAction(e -> {
switch (text) {
case "C":
display.setText("");
currentNumber = "";
operator = "";
result = 0;
startNewNumber = true;
break;
case "+":
case "-":
case "×":
case "÷":
if (!currentNumber.isEmpty()) {
if (!operator.isEmpty()) {
calculate();
} else {
result = Double.parseDouble(currentNumber);
}
operator = text;
startNewNumber = true;
}
break;
case "=":
if (!currentNumber.isEmpty() && !operator.isEmpty()) {
calculate();
operator = "";
startNewNumber = true;
}
break;
case ".":
if (!currentNumber.contains(".")) {
currentNumber += text;
display.setText(currentNumber);
}
break;
default:
if (startNewNumber) {
currentNumber = text;
startNewNumber = false;
} else {
currentNumber += text;
}
display.setText(currentNumber);
}
});
return button;
}
private void calculate() {
if (currentNumber.isEmpty()) return;
double secondNumber = Double.parseDouble(currentNumber);
switch (operator) {
case "+":
result += secondNumber;
break;
case "-":
result -= secondNumber;
break;
case "×":
result *= secondNumber;
break;
case "÷":
if (secondNumber != 0) {
result /= secondNumber;
} else {
display.setText("Error");
return;
}
break;
}
display.setText(String.valueOf(result));
currentNumber = String.valueOf(result);
}
public static void main(String[] args) {
launch(args);
}
}
|자바 계산기 UI
<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<groupId>com.calculator</groupId>
<artifactId>calculator</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<javafx.version>17.0.2</javafx.version>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<configuration>
<mainClass>com.calculator.Calculator</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
java를 이용해서 계산기도 만들어주고
javaFX를 이용해서 폼도 꾸며주고 편하다.
728x90
반응형
LIST