codice:
public class CalcEvolution extends Frame{
long num1 = 0;
long num2 = 0;
long totale = 0 ;
String operazione = "";
String primonum = "";
String secondonum = "";
String text = "";
TextField textField = new TextField();
Button addiziona = new Button("+");
Button sottrai = new Button("-");
Button moltiplica = new Button("*");
Button dividi = new Button("/");
Button clear = new Button("Pulisci");
Button uno = new Button("1");
Button due = new Button("2");
Button tre = new Button("3");
Button quattro = new Button("4");
Button cinque = new Button("5");
Button sei = new Button("6");
Button sette = new Button("7");
Button otto = new Button("8");
Button nove = new Button("9");
Button zero = new Button("0");
Button uguale = new Button("=");
public static void main(String arg[]) {
CalcEvolution app = new CalcEvolution();
}
public CalcEvolution(){
super(" Calcolatrice ");
setSize(300,300);
addWindowListener(new CalcEvolution.WindowEventHandler()); KeyHandler listener = new KeyHandler();
addKeyListener(listener);
setLayout(null);
textField.setBounds(10,25,100,20);
textField.setEnabled(false);
sette.setBounds(10,50,20,25);
otto.setBounds(35,50,20,25);
nove.setBounds(60,50,20,25);
dividi.setBounds(85,50,20,25);
quattro.setBounds(10,80,20,25);
cinque.setBounds(35,80,20,25);
sei.setBounds(60,80,20,25);
moltiplica.setBounds(85,80,20,25);
uno.setBounds(10,110,20,25);
due.setBounds(35,110,20,25);
tre.setBounds(60,110,20,25);
sottrai.setBounds(85,110,20,25);
zero.setBounds(10,140,20,25);
uguale.setBounds(35,140,45,25);
addiziona.setBounds(85,140,20,25);
clear.setBounds(10,170,100,20);
addiziona.addActionListener(new ButtonHandler());
sottrai.addActionListener(new ButtonHandler());
moltiplica.addActionListener(new ButtonHandler());
dividi.addActionListener(new ButtonHandler());
clear.addActionListener(new ButtonHandler());
uno.addActionListener(new ButtonHandler());
due.addActionListener(new ButtonHandler());
tre.addActionListener(new ButtonHandler());
quattro.addActionListener(new ButtonHandler());
cinque.addActionListener(new ButtonHandler());
sei.addActionListener(new ButtonHandler());
sette.addActionListener(new ButtonHandler());
otto.addActionListener(new ButtonHandler());
nove.addActionListener(new ButtonHandler());
zero.addActionListener(new ButtonHandler());
uguale.addActionListener(new ButtonHandler());
add(textField);
add(addiziona);
add(sottrai);
add(moltiplica);
add(dividi);
add(clear);
add(uno);
add(due);
add(tre);
add(quattro);
add(cinque);
add(sei);
add(sette);
add(otto);
add(nove);
add(zero);
add(uguale);
show();
}
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent ev) {
String s = ev.getActionCommand();
if (s.equals("1")||
s.equals("2")||
s.equals("3")||
s.equals("4")||
s.equals("5")||
s.equals("6")||
s.equals("7")||
s.equals("8")||
s.equals("9")||
s.equals("0")
)
{
text = textField.getText() + s;
textField.setText(text);
}
else
if (s.equals("+"))
{
operazione = "+";
primonum = textField.getText();
textField.setText("");
}
else
if (s.equals("-"))
{
operazione = "-";
primonum = textField.getText();
textField.setText("");
}
else
if (s.equals("*"))
{
operazione = "*";
primonum = textField.getText();
textField.setText("");
}
else
if (s.equals("/"))
{
operazione = "/";
primonum = textField.getText();
textField.setText("");
}
else
if (s.equals("="))
{
secondonum = textField.getText();
textField.setText("");
if (primonum.equals(""))
{
num1 = 0;
num2 = 0;
}
else
if (secondonum.equals(""))
{
num1 = Long.parseLong(primonum);
num2 = 1;
operazione = "*";
}
else
{
num1 = Long.parseLong(primonum);
num2 = Long.parseLong(secondonum);
}
if (operazione.equals("+"))
totale = num1 + num2;
else
if (operazione.equals("-"))
totale = num1 - num2;
else
if (operazione.equals("*"))
{
totale = num1 * num2;
}
else
if (operazione.equals("/"))
totale = num1 / num2;
if (num1 == 0 )
textField.setText("");
else
{
String tot = "" + totale;
textField.setText(tot);
}
}
else
if (s.equals("Pulisci"))
{
textField.setText("");
primonum = "";
secondonum = "";
}
}
}
class KeyHandler implements KeyListener
{
public void keyPressed(KeyEvent event)
{
System.out.println("key pressed");
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.VK_ENTER)
textField.setText(" enter");
else
if (keyCode == KeyEvent.VK_TAB)
textField.setText(" tab");
}
public void keyReleased(KeyEvent event)
{
System.out.println("key relased");
}
public void keyTyped(KeyEvent event)
{
char keyChar = event.getKeyChar();
System.out.println("ho pigiato" + keyChar);
// String e = keyChar;
if (keyChar == '1' ||
keyChar == '2' ||
keyChar == '3' ||
keyChar == '4' ||
keyChar == '5' ||
keyChar == '6' ||
keyChar == '7' ||
keyChar == '8' ||
keyChar == '9'
)
{
text = textField.getText() + keyChar;
textField.setText(text);
}
else
if (keyChar == '+' )
{
operazione = "+";
primonum = textField.getText();
textField.setText("");
}
else
if (keyChar == '-')
{
operazione = "-";
primonum = textField.getText();
textField.setText("");
}
else
if (keyChar == '*')
{
operazione = "*";
primonum = textField.getText();
textField.setText("");
}
else
if (keyChar == '/')
{
operazione = "/";
primonum = textField.getText();
textField.setText("");
}
else
if (keyChar == '=')
{
secondonum = textField.getText();
textField.setText("");
if (primonum.equals(""))
{
num1 = 0;
num2 = 0;
}
else
if (secondonum.equals(""))
{
num1 = Long.parseLong(primonum);
num2 = 1;
operazione = "*";
}
else
{
num1 = Long.parseLong(primonum);
num2 = Long.parseLong(secondonum);
}
if (operazione.equals("+"))
totale = num1 + num2;
else
if (operazione.equals("-"))
totale = num1 - num2;
else
if (operazione.equals("*"))
{
totale = num1 * num2;
}
else
if (operazione.equals("/"))
totale = num1 / num2;
if (num1 == 0 )
textField.setText("");
else
{
String tot = "" + totale;
textField.setText(tot);
}
}
}
}
}