Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package calc;
- import java.awt.Font;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- public class Calculator extends JFrame implements ActionListener {
- private JButton[] buttons;
- private JTextField field;
- private ArrayList<Double> numbers;
- private double result;
- private boolean plus, min;
- public Calculator() {
- buttons = new JButton[15];
- numbers = new ArrayList<>();
- plus = false;
- min = false;
- createButtons();
- createPanel();
- }
- public static void main(String[] args) {
- JFrame frame = new Calculator();
- frame.setTitle("Calculator");
- frame.setSize(500, 600);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- private void createButtons() {
- for (int i = 0; i < buttons.length; i++) {
- if (i == 10) {
- buttons[i] = new JButton(".");
- } else if (i == 11) {
- buttons[i] = new JButton("+");
- } else if (i == 12) {
- buttons[i] = new JButton("-");
- } else if (i == 13) {
- buttons[i] = new JButton("=");
- } else if (i == 14) {
- buttons[i] = new JButton("Clear");
- } else {
- buttons[i] = new JButton(i + "");
- }
- buttons[i].addActionListener(this);
- }
- }
- private void createPanel() {
- JPanel panel = new JPanel();
- panel.setLayout(null);
- field = new JTextField();
- Font f = new Font("SanSerif", Font.BOLD, 40);
- field.setFont(f);
- field.setBounds(50, 30, 385, 60);
- panel.add(field);
- int k = 0;
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- buttons[k].setBounds(j * 100 + 55, i * 100 + 140, 75, 60);
- panel.add(buttons[k]);
- if (k < 14) {
- k++;
- }
- }
- }
- add(panel);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- for (int i = 0; i < buttons.length; i++) {
- if (e.getSource().equals(buttons[i]) && i < 11) {
- field.setText(buttons[i].getText());
- numbers.add(Double.parseDouble(field.getText()));
- operation();
- }
- }
- if (e.getSource() == buttons[11]) {
- plus = true;
- } else if (e.getSource() == buttons[12]) {
- min = true;
- } else if (e.getSource() == buttons[13]) {
- field.setText("" + result);
- } else if (e.getSource() == buttons[14]) {
- field.setText("");
- numbers.clear();
- plus = false;
- min = false;
- }
- }
- public double operation() {
- for (int i = 0; i < numbers.size(); i++) {
- System.out.println(numbers.get(i));
- }
- System.out.println("");
- if (plus) {
- result = numbers.get(0) + numbers.get(1);
- numbers.clear();
- numbers.add(result);
- plus = false;
- }
- if (min) {
- result = numbers.get(0) - numbers.get(1);
- numbers.clear();
- numbers.add(result);
- min = false;
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement