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;
}
}
Commenti
Posta un commento