Come promesso... ho realizzato la classe che richiedevi.
Lascio però a te la gestione degli errori.
codice:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Calcolatrice extends Applet implements ActionListener {
private Button calcola;
private Button somma;
private Button sottrai;
private Button moltiplica;
private Button dividi;
private TextField txtPrimoNumero;
private TextField txtSecondoNumero;
private Label primoNum;
private Label secondoNum;
private Label risultato;
private byte operazione;
public void init() {
setLayout(null);
operazione = 0;
primoNum = new Label("Primo numero:");
primoNum.setBounds(10, 10, 100, 18);
primoNum.setBackground(Color.green);
secondoNum = new Label("Secondo numero:");
secondoNum.setBounds(10, 30, 110, 18);
secondoNum.setBackground(Color.green);
risultato = new Label("Risultato:");
risultato.setBounds(10, 50, 200, 18);
txtPrimoNumero = new TextField();
txtPrimoNumero.setBounds(115, 10, 40, 18);
txtSecondoNumero = new TextField();
txtSecondoNumero.setBounds(125, 30, 40, 18);
somma = new Button("Somma");
somma.setBounds(250, 10, 50, 20);
somma.addActionListener(this);
sottrai = new Button("Sottrai");
sottrai.setBounds(250, 35, 50, 20);
sottrai.addActionListener(this);
moltiplica = new Button("Moltiplica");
moltiplica.setBounds(250, 60, 50, 20);
moltiplica.addActionListener(this);
dividi = new Button("Dividi");
dividi.setBounds(250, 85, 50, 20);
dividi.addActionListener(this);
calcola = new Button("Calcola");
calcola.setBounds(250, 110, 50, 20);
calcola.addActionListener(this);
add(primoNum);
add(secondoNum);
add(risultato);
add(txtPrimoNumero);
add(txtSecondoNumero);
add(somma);
add(sottrai);
add(moltiplica);
add(dividi);
add(calcola);
}
public void actionPerformed(ActionEvent ae) {
try {
int num1 = Integer.parseInt(txtPrimoNumero.getText());
int num2 = Integer.parseInt(txtSecondoNumero.getText());
if (ae.getSource().equals(somma)) {
operazione = 1;
} else if (ae.getSource().equals(sottrai)) {
operazione = 2;
} else if (ae.getSource().equals(moltiplica)) {
operazione = 3;
} else if (ae.getSource().equals(dividi)) {
operazione = 4;
} else if (ae.getSource().equals(calcola)) {
switch(operazione) {
case 1: risultato.setText("Risultato: "+ (num1+num2)); break;
case 2: risultato.setText("Risultato: "+ (num1-num2)); break;
case 3: risultato.setText("Risultato: "+ (num1*num2)); break;
case 4: risultato.setText("Risultato: "+ (num1/num2)); break;
}
}
} catch (NumberFormatException nfe) { nfe.printStackTrace(); }
}
}
L'applet io l'ho impostata con dimensione 500 x 500, ma va bene anche meno... comunque puoi gestire anche questo.
Ciao.