4 svar
179 visningar
barcode är nöjd med hjälpen
barcode 162 – Avstängd
Postad: 1 sep 2017 16:32

Try

 

När jag skriver in talet -1 så vill jag att det ska komma upp en dialog rutan som säger det som står innanför parentesen. Men när jag kör så funkar det ändå inte? varför då?  

Stokastisk 3597 – Fd. Medlem
Postad: 1 sep 2017 16:37

Nu har jag inte kollat dokumentationen, men Integer.valueOf kommer inte kasta några exceptions bara för att talet är negativt. Utan testa skriv in någon text som inte går att tolka som ett heltal så kommer du nog få ett exception av det, men jag tvivlar på att det kommer vara en NegativeArraySizeException som kastas, utan det bör vara någon annan exception.

Du kan lösa problemet med att efter try-catch satsen ha en

if (antalTal < 0) JOptionPane.showMessageDialog(null, "Du kan ...

barcode 162 – Avstängd
Postad: 1 sep 2017 16:42

barcode 162 – Avstängd
Postad: 1 sep 2017 16:52

Jag löste det nu tack för hjälpen!

Stokastisk 3597 – Fd. Medlem
Postad: 1 sep 2017 16:52

Japp, så om du skriver in något som inte går att tolka som ett heltal så kommer första rad i hela metoden kasta en exception som är NumberFormatException, dvs denna rad kommer gör det:

int antalTal = Integer.valueOf(txfAntal.getText());

Så ändra starten på metoden till något i stil med

int antalTal;

boolean isInputInteger;

try {

antalTal = Integer.valueOf(txfAntal.getText());

isInputInteger= true;

} catch (NumberFormatException e) {

isInputInteger= false;

}

if (!isInputInteger || antalTal < 0) {

/** Säg att man måste skriva in ett positivt heltal **/

return;

}

 

Sedan kan du fortsätta metoden som du tänkte.

Svara Avbryt
Close