2 svar
248 visningar
slouching_meat_sack behöver inte mer hjälp
slouching_meat_sack 19
Postad: 28 feb 2020 20:06

Problem med JOptionPane.showInputDialog();

Jag försöker få mitt program att avslutas om användaren inte matar in något i den första dialogrutan, utan klickar på 'cancel', i stället får jag upp meddelandet i min try & catch-sats under som ska visas om något annat än siffror matas in.
Här är en länk till mitt program på Pastebin.

Jag undrar om det finns något sätt jag kan lägga in ett villkor som avslutar programmet helt om 'cancel' blir vald. Jag försökte med en if-sats som kollade om 'String answer' var tom, och la in  att 'System.exit(0);' skulle köras om så var fallet.
Det fungerade utmärkt, d.v.s. programmet avslutades som det skulle, förutom att jag fick ett felmeddelande: java.lang.NullPointerException at com.username.Main.main(Main.java:20)Process finished with exit code 1
Såhär såg koden ut då.

Nuvarande kod i fråga:

String answer = JOptionPane.showInputDialog("Vad är din årsinkomst?");


/* To prevent a crash if the user inputs anything else than a number, this is
done in a try and catch statement. */
try {
    grossIncome = Integer.parseInt(answer);
} catch (NumberFormatException e) {
    JOptionPane.showMessageDialog(null, "Anv\u00E4nd endast 0-9");
}

slouching_meat_sack 19
Postad: 28 feb 2020 20:31

Det löste sig! Jag la in 'null' som första argument i min inputDialog

såhär:
String answer = JOptionPane.showInputDialog(null, "Vad är din årsinkomst?");

sedan skrev jag en if-sats såhär;
if (answer == null)
    System.exit(0);

Fungerade hur bra som helst! :)

Tegelhus 225
Postad: 28 feb 2020 22:40

Är det tänkt att programmet ska avslutas även om man skriver in en tom sträng och sen trycker OK? För det är möjligt att det inte gör det om du bara kollar om ifall det är null. Prova!

Svara
Close