Ahoj, potřeboval bych pomoct vyřešit problém. V mém programu uživatel zadává reálné číslo do TextFieldu. Aby nemusel zadání potvrzovat enterem (při testování sem na potvrzení často zapomínal i já jako programátor), mám vnitřní třídu, která obsluhuje událost TextEvent (metoda textValueChanged(Text)). Pokud uživatel zadá něco jiného než reálné číslo(double), objeví se mu hláška, ať zadá reálné číslo. Jenže pokud chce uživatel zadat desetinný oddělovač, program vidí například 3. a už vyhazuje chybu, protože 3. není double.
public class ReakcniKonstantaTFTL implements TextListener{
public void textValueChanged(TextEvent e){
try{
String s = reakcniKonstantaTF.getText();
if (0 == Integer.valueOf(s).intValue()){
throw new NulovaVyjmka();
}
reakcniKonstanta = Double.valueOf(s).doubleValue();
}
catch(soč.vyjmky.NulovaVyjmka d){
reakcniKonstantaTF.setText(String.valueOf(reakcniKonstanta));
soč.chyba.Nula chyba = new soč.chyba.Nula(Main.d,true);
chyba.setVisible(true);
}
catch(java.lang.NumberFormatException d){
reakcniKonstantaTF.setText(String.valueOf(reakcniKonstanta));
soč.chyba.Tecka chyba = new soč.chyba.Tecka(Main.d,true);
chyba.setVisible(true);
}
}
}
Napadlo mě smazat třídu, která obsluhuje TextEvent a napsat tam něco jako tlačítko potvrď, jenže to se mi úplně nehodí.
Potřeboval bych nějak zařídit, aby program po zadání chvíli počkal, než začne zpracovávat, co tam uživatel nabouchá.
Díky za pomoc.