0917
JAVA GUI를 이용해 정수를 계산하는 계산기를 만들어봅시다.
소스 코드
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.LocalDate;
import java.time.temporal.TemporalUnit;
import javax.swing.*;
public class CalculatorFrame extends JFrame {
String operand;
String operator;
public CalculatorFrame() {
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
var textField = new JTextField();
add(textField, BorderLayout.NORTH);
var panel = new JPanel( new GridLayout(4, 4) );
String[] buttons = { "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "*", "/", "0", "Clear", "=" };
for(String button : buttons) {
var btn = new JButton(button);
btn.setFont(new Font("Arial", Font.PLAIN, 30));
btn.addActionListener(e -> {
if (button.charAt(0) >= '0' && button.charAt(0) <= '9') {
textField.setText(textField.getText() + button);
}
else if (button.equals("Clear")) {
textField.setText("");
operand = "";
operator = "";
}
else if (button.equals("=")) {
long op1 = Long.valueOf(operand);
long op2 = Long.valueOf(textField.getText());
if (operator.equals("+")) {
textField.setText(String.valueOf(op1 + op2));
} else if (operator.equals("-")) {
textField.setText(String.valueOf(op1 - op2));
} else if (operator.equals("*")) {
textField.setText(String.valueOf(op1 * op2));
} else if (operator.equals("/")) {
textField.setText(String.valueOf(op1 / op2));
}
}
else {
operand = textField.getText();
operator = button;
textField.setText("");
}
});
panel.add(btn);
}
add(panel);
}
public static void main(String[] args) {
var frame = new CalculatorFrame();
frame.setVisible(true);
}
}
실행 결과
