🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Progetto Calcolatrice in Java

Codegrind Team•Jul 12 2024

Descrizione del Progetto

In questo progetto, creerai una calcolatrice in Java utilizzando Swing per l’interfaccia grafica. La calcolatrice sarà in grado di eseguire le operazioni base: addizione, sottrazione, moltiplicazione e divisione.

Requisiti

  1. Librerie Java: Utilizzare le librerie standard di Java.
  2. Interfaccia Utente: Creare un’interfaccia grafica utilizzando Swing.
  3. FunzionalitĂ  della Calcolatrice:
    • Eseguire le operazioni di base: addizione, sottrazione, moltiplicazione e divisione.
    • Visualizzare il risultato sul display della calcolatrice.
  4. Gestione degli Errori: Gestire divisioni per zero e altri possibili errori.

Struttura del Progetto

calcolatrice/
├── src/
│   ├── Main.java
│   └── Calcolatrice.java
└── README.md

Codice di Esempio

Main.java: Questo file contiene il punto di ingresso dell’applicazione.

public class Main {
    public static void main(String[] args) {
        Calcolatrice calcolatrice = new Calcolatrice();
        calcolatrice.setVisible(true);
    }
}

Calcolatrice.java: Questo file contiene l’implementazione della calcolatrice.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Calcolatrice extends JFrame {
    private JTextField display;
    private double primoNumero;
    private double secondoNumero;
    private String operazione;

    public Calcolatrice() {
        setTitle("Calcolatrice");
        setSize(400, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setLayout(new BorderLayout());

        display = new JTextField();
        display.setFont(new Font("Arial", Font.PLAIN, 24));
        display.setHorizontalAlignment(JTextField.RIGHT);
        display.setEditable(false);
        add(display, BorderLayout.NORTH);

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4));

        String[] buttonLabels = {
                "7", "8", "9", "/",
                "4", "5", "6", "*",
                "1", "2", "3", "-",
                "0", "C", "=", "+"
        };

        for (String label : buttonLabels) {
            JButton button = new JButton(label);
            button.setFont(new Font("Arial", Font.PLAIN, 24));
            button.addActionListener(new ButtonClickListener());
            panel.add(button);
        }

        add(panel, BorderLayout.CENTER);
    }

    private class ButtonClickListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            String command = e.getActionCommand();

            switch (command) {
                case "C":
                    display.setText("");
                    primoNumero = 0;
                    secondoNumero = 0;
                    operazione = "";
                    break;
                case "=":
                    secondoNumero = Double.parseDouble(display.getText());
                    double risultato = 0;
                    switch (operazione) {
                        case "+":
                            risultato = primoNumero + secondoNumero;
                            break;
                        case "-":
                            risultato = primoNumero - secondoNumero;
                            break;
                        case "*":
                            risultato = primoNumero * secondoNumero;
                            break;
                        case "/":
                            if (secondoNumero != 0) {
                                risultato = primoNumero / secondoNumero;
                            } else {
                                JOptionPane.showMessageDialog(null, "Errore: Divisione per zero");
                            }
                            break;
                    }
                    display.setText(String.valueOf(risultato));
                    break;
                case "+":
                case "-":
                case "*":
                case "/":
                    primoNumero = Double.parseDouble(display.getText());
                    operazione = command;
                    display.setText("");
                    break;
                default:
                    display.setText(display.getText() + command);
                    break;
            }
        }
    }
}

Istruzioni per l’Esecuzione

  1. Compilare il Progetto:

    javac src/Main.java src/Calcolatrice.java -d out
    
  2. Eseguire l’Applicazione:

    java -cp out Main
    

Estensioni Possibili

  1. FunzionalitĂ  Avanzate: Aggiungere funzionalitĂ  come il calcolo delle radici quadrate, potenze, ecc.
  2. Storico delle Operazioni: Implementare una funzionalitĂ  per tenere traccia delle operazioni eseguite.
  3. Tema Personalizzabile: Permettere agli utenti di cambiare il tema della calcolatrice (colori, font, ecc.).