Bisogna capire quando è che deve scattare l'evento di verifica dei dati. Alla pressione di un pulsante (JButton)? Alla pressione del tasto INVIO in una delle caselle di testo? Altro?
Cmq non c'è bisogno di utilizzare un JFormattedTextField. Puoi utilizzare un semplice JTextField e fare i controlli del caso nel gestore dell'evento di cui sopra.
Ad esempio:
Codice PHP:
String valoreInserito = tuaTextField.getText();
if(isNumber(valoreInserito)){
if(Integer.parseInt(valoreInserito) < 4 || Integer.parseInt(valoreInserito) > 10){
JOptionPane.showMessageDialog(null, "Inserire un valore numerico compreso tra 4 e 10", "Errore", JOptionPane.ERROR_MESSAGE);
}else{
altroTextField.setText(valoreInserito);
if(Integer.parseInt(valoreInserito) >= 4 && Integer.parseInt(valoreInserito) <= 6){
JOptionPane.showMessageDialog(null, "Intervallo 4-6", "Messaggio", JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(null, "Intervallo 7-10", "Messaggio", JOptionPane.INFORMATION_MESSAGE);
}
}
}else{
JOptionPane.showMessageDialog(null, "Inserire un valore numerico", "Errore", JOptionPane.ERROR_MESSAGE);
}
il metodo isNumber verifica che si tratti di un valore numerico:
Codice PHP:
public static boolean method isNum(String s) {
try {
Integer.parseInt(s);
}catch (NumberFormatException nfe) {
return false;
}
return true;
}
Se poi sei costretta ad utilizzare un JFormattedTextField le cose si complicano leggermente per validare l'input.