Calcolatrice

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calcolatrice2 {
    JTextField t1=new JTextField();
    JTextField t2=new JTextField();
    JButton x=new JButton("x");
    JButton rad=new JButton ("Radice");
    JButton somma=new JButton("+");
    JButton exp=new JButton("exp");
    JLabel l5=new JLabel();
    JLabel segno=new JLabel();
    JButton differenza=new JButton("-");
    JButton divide=new JButton("/");
    RisultatoVivo risultato=new RisultatoVivo();
    JFrame f1=new JFrame("Calcolatrice");
    JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();

    public Calcolatrice2(){
        risultato.setOpaque(false);
        f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        p1.setLayout(new GridLayout(5,1));
        p1.add(t1);
        p1.add(t2);
        p1.add(segno);
        p1.add(risultato);
        p1.add(l5);
        p3.setLayout(new GridLayout(3,2));
        p3.add(somma);
        p3.add(differenza);
        p3.add(x);
        p3.add(divide);
        p3.add(rad);
        p3.add(exp);
        p3.add(BorderLayout.NORTH,p1);
        f1.setLayout(new GridLayout(2,1));
        f1.add(p1);
        f1.add(p3);
        somma.addActionListener(new Somma());
        differenza.addActionListener(new Differenza());
        x.addActionListener(new Moltilplicazione());
        rad.addActionListener(new Radice());
        divide.addActionListener(new Quoziente());
        exp.addActionListener(new Esponente());
        f1.setSize(500,550);
        f1.setResizable(false);
        f1.setVisible(true);
    }
    //mi creo una classe interna per l'ascoltatore della somma
    class Somma implements ActionListener{
            public void actionPerformed(ActionEvent e){
                String snumero1=t1.getText();
                double numero1=Double.parseDouble(snumero1);
                String snumero2=t2.getText();
                double numero2=Double.parseDouble(snumero2);
                double somma=numero1+numero2;
                String ssomma=Double.toString(somma);
                segno.setText("L'operazione corrente è una somma");
                risultato.setRisultato(somma);
                risultato.setText(ssomma);
                l5.setText(ssomma);
                f1.repaint();
            }
    }
    //mi creo una classe interna per l'ascoltatore della differenza
    class Differenza implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String snumero1=t1.getText();
            double numero1=Double.parseDouble(snumero1);
            String snumero2=t2.getText();
            double numero2=Double.parseDouble(snumero2);
            double differenza=numero1-numero2;
            String sdifferenza=Double.toString(differenza);
            segno.setText("L'operazione corrente è una differenza");
            risultato.setRisultato(differenza);
            risultato.setText(sdifferenza);
            l5.setText(sdifferenza);
            f1.repaint();
        }
    }
    //mi creo una classe interna per l'ascoltatore della Moltiplicazione
    class Moltilplicazione implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String snumero1=t1.getText();
            double numero1=Double.parseDouble(snumero1);
            String snumero2=t2.getText();
            double numero2=Double.parseDouble(snumero2);
            double prodotto=numero1*numero2;
            String sprodotto=Double.toString(prodotto);
            segno.setText("L'operazione corrente è un prodotto");
            risultato.setText(sprodotto);
            risultato.setRisultato(prodotto);
            l5.setText(sprodotto);
            f1.repaint();
        }
    }
    //mi creo una classe interna per l'ascoltatore della quoziente
    class Quoziente implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String snumero1=t1.getText();
            double numero1=Double.parseDouble(snumero1);
            String snumero2=t2.getText();
            double numero2=Double.parseDouble(snumero2);
            double quoziente=numero1/numero2;
            String squoziente=Double.toString(quoziente);
            risultato.setText(squoziente);
            segno.setText("L'operazione corrente è un quoziente");
            risultato.setRisultato(quoziente);
            l5.setText(squoziente);
            f1.repaint();
        }
    }
     class Radice implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String snumero1=t1.getText();
            double numero1=Double.parseDouble(snumero1);
            String snumero2=t2.getText();
            double numero2=Double.parseDouble(snumero2);
            double radice=Math.pow(numero1,1.0/numero2);
            String sradice=Double.toString(radice);
            segno.setText("L'operazione corrente è una radice");
            risultato.setText(sradice);
            risultato.setRisultato(radice);
            l5.setText(sradice);
            f1.repaint();
        }
    }
class Esponente implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String snumero1=t1.getText();
            double numero1=Double.parseDouble(snumero1);
            String snumero2=t2.getText();
            double numero2=Double.parseDouble(snumero2);
            double exp=Math.pow(numero1, numero2);
            String sexp=Double.toString(exp);
            risultato.setText(sexp);
            segno.setText("L'operazione corrente è un elevamento a potenza");
            risultato.setRisultato(exp);
            l5.setText(sexp);
            f1.repaint();
        }
    }
    public static void main(String args[]){
        Calcolatrice2 c=new Calcolatrice2();

    }
}

 

 

import javax.swing.*;
import java.awt.*;
import java.awt.Graphics;
public class RisultatoVivo extends JLabel{
    double risultato;
    public void paintComponent(Graphics g){
        if(risultato>0){
                g.setColor(Color.orange);
                g.fillRect(0, 0, 50, 50);
        }else{
            g.setColor(Color.YELLOW);
            g.fillOval(0, 0, 50, 50);
        }
    }
    public void setRisultato(double r){
        risultato=r;
    }
}

 

Cattura

Cattura1

Commenti