Ciao a tutti, avrei bisogno di inserire un if che mi controlli che nell'area di testo vengano inseriti solo numeri e non caratteri, e che qualora se ne si inseriscano, mi dia una finestra di messaggio. Grazie per l'aiuto!
/**
- questi pacchetti contengono le componenti per la gestione delle finestre e degli eventi
/
import javax.swing.;
import java.awt.event.*;
public class RifaccioMedia2 {
public static void main (String[] args) {
/**
*Costruisco una finestra e permetto che la JVM si possa fermare (parametro exit_on_close)
*/
JFrame finestra = new JFrame("Calcolo la media di due numeri, anche a virgola mobile");
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/**
*Costruisco un pannello; setlayout crea l'interfaccia e l'oggetto boxlayout la disposizione, che posso variare.
*/
JPanel pannello = new JPanel();
pannello.setLayout(new BoxLayout(pannello, BoxLayout.Y_AXIS));
/**
*showmessagedialog è un metodo della classe joptionpane che mi crea una finestra di dialogo "preconfezionata"
*/
JOptionPane.showMessageDialog( null, "Benvenuto nel programma di calcolo della media di due numeri creato da Francesco" );
if (PrimoNumero == char ) {
JOptionPane.showMessageDialog( null, "Puoi inserire solo numeri interi o con la virgola, non caratteri" );
}
/**
*Costruisco una scritta ed un'area di testo e li aggiungo al pannello
*/
JLabel PrimoNumerolabel = new JLabel("Primo numero:");
final JTextField PrimoNumero = new JTextField(50);
pannello.add(PrimoNumerolabel);
pannello.add(PrimoNumero);
/**
*Costruisco una scritta ed un'area di testo e li aggiungo al pannello (per il secondo numero)
*/
JLabel SecondoNumerolabel = new JLabel("Secondo numero:");
final JTextField SecondoNumero = new JTextField(50);
pannello.add(SecondoNumerolabel);
pannello.add(SecondoNumero);
/**
*Costruisco un bottone e lo aggiungo al pannello
*/
JButton pulsOk = new JButton("OK");
pannello.add(pulsOk);
/**
*Costruisco una scritta ed un'area di testo e li aggiungo al pannello (per il risultato)
*/
JLabel RisultatoLabel = new JLabel("Risultato:");
final JTextField Risultato = new JTextField(50);
pannello.add(RisultatoLabel);
pannello.add(Risultato);
/**
Questa classe implementa l'actionlistener contenuto nel pacchetto java.awt.event
/
class Media implements ActionListener{
/
- All'interno di questa classe, implemento actionperformed per dire "cosa fare" una volta intercettata la pressione del pulsante
*/
public void actionPerformed (ActionEvent event) {
String fromUser = PrimoNumero.getText();
String fromUser2 = SecondoNumero.getText();
double n1 = Double.parseDouble(fromUser);
double n2 = Double.parseDouble(fromUser2);
double media = (n1 + n2) / 2 ;
String calcola = "";
String risultato = calcola.format("%.2f", media); // %.2f mette la virgola ai decimali
Risultato.setText(risultato); //mette il totale in risultato
}
}
/**
*Creo un istanza di actionlistener ed aggiungo pulsOK (che contiene un oggetto jbutton). Il tipo della variabile listener può essere Media perchè implementa actionlistener
*/
ActionListener listener = new Media();
pulsOk.addActionListener(listener);
finestra.setContentPane(pannello);
finestra.pack();//Assegna le dimensioni minime sufficienti a mostrare tutto il contenuto della finestra
finestra.setVisible(true);
}
}