Gå til innhold

joptionpane.yes_no_option, ikke komme ut av løkke.


Anbefalte innlegg

Lager ett program i Textpad hvor man skal legge inn ett nedre og ett øvre tall inn i .showInputDialog. Det regnes ut og alt er fryd og gammen. I oppgaven skal programmet fortsette å be om input hvis man legger inn en nedre grense, eks. 10 og en øvre grense på eks. 2, helt til det er gyldige input og utregning gjøres.

 

Jeg har lagd slik at hvis man skriver feil så får man opp en feilmelding og ett YES_NO vindu hvor man kan velge å legge inn verdier på nytt med å trykke ja. Hvis jeg derimot trykker på nei eller x for å lukke vinduet, popper den samme feilmeldingen som sist opp og YES_NO vinduet kommer igjen. Dette gjøres helt til det legges inn gyldige verdier.

 

Noen som kan hjelpe meg å få skrevet inn at programmet skal slutte når man trykker nei eller x? :)

 

Dette er deler av programmet:

 

while( a>b || a==b )
{
JOptionPane.showMessageDialog(null, "Tallene du har skrevet inn er ikke gyldige!" , "Noe gikk feil", JOptionPane.ERROR_MESSAGE);

int knapp = JOptionPane.showOptionDialog( null, "Vil du skrive inn nye grense tall?", "Nye grense tall", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);

if( knapp == JOptionPane.YES_OPTION )
{
tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " );
tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " );

a = Integer.parseInt( tallA );
b = Integer.parseInt( tallB );
}

Lenke til kommentar
Videoannonse
Annonse

Nå er det mulig at det er bare jeg som ikke ser det, eller det ligger lenger ned i koden din, som ikke er lagt ut her, men har du lagt inn hva som skal skje ved NO_OPTION ? for det at den fungerer ved ja er jo pga av at du har lagt inn if helt nederst der.

 

 

if( knapp == JOptionPane.YES_OPTION ){

tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " );

tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " );

a = Integer.parseInt( tallA );

b = Integer.parseInt( tallB );

}else if(knapp == JOptionPane.NO_OPTION){ // ved nei

System.exit(0);

}else{ //ved kryss

System.exit(0);

}

er ikke 100% på om dette fungerer, men du kan alltids prøve, gi meg gjerne tilbakemld om du har testet dette.

Endret av kvisvik
Lenke til kommentar
  • 3 uker senere...

 

Nå er det mulig at det er bare jeg som ikke ser det, eller det ligger lenger ned i koden din, som ikke er lagt ut her, men har du lagt inn hva som skal skje ved NO_OPTION ? for det at den fungerer ved ja er jo pga av at du har lagt inn if helt nederst der.

 

 

if( knapp == JOptionPane.YES_OPTION ){

tallA = JOptionPane.showInputDialog( "Skriv inn et nedre grense tall: " );

tallB = JOptionPane.showInputDialog( "Skriv inn et øvre grense tall: " );

a = Integer.parseInt( tallA );

b = Integer.parseInt( tallB );

}else if(knapp == JOptionPane.NO_OPTION){ // ved nei

System.exit(0);

}else{ //ved kryss

System.exit(0);

}

er ikke 100% på om dette fungerer, men du kan alltids prøve, gi meg gjerne tilbakemld om du har testet dette.

 

 

Resten av programmet er følgende:

 

"//Lager en teller som setter inn ett linjeskift etter hvert tiende tall

int teller = 0;

while(a < b)

{

teller++;

 

if(teller %10 == 0)

{

svar += a+"\n+ ";

}

 

else

{

svar += a + " + " ;

}

sum += a;

a +=1;

}

 

svar = svar + a ;

sum = sum + a;

a = a + 1;

 

//Skriver ut summen av tallene med linjeskift

JOptionPane.showMessageDialog(null, svar + "\nSummen = " + sum, "Summering av Tallrekker", JOptionPane.INFORMATION_MESSAGE);"

 

Dette fungerte :)

 

Prøvde ikke forslaget ditt så godt mulig det fungerer!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...