Gå til innhold

Hva er galt med denne metoden.


Anbefalte innlegg

Denne metoden blir kalt av ActionListener, og skal ta i mot data i textfelter og lagre de i en array (min, max og nedb).

 

Men noe er galt. Kan noen si meg hva?

   public void lesInnVærdata(int dag) {
     String getMinTemp = minfelt.getText();
     int getMinTempInt = Integer.parseInt(getMinTemp);
     min[dag] = getMinTempInt;

     String getMaksTemp = maksfelt.getText();
     int getMaksTempInt = Integer.parseInt(getMaksTemp);
     max[dag] = getMaksTempInt;

     int i_nedb = 1;

     boolean ok = false; //feilmelding hvis inntastet negativ verdi
     while (!ok) {
       s_nedb = nedbor.getText();
       i_nedb = Integer.parseInt(s_nedb);
       if (i_nedb < 0) {
         JOptionPane.showMessageDialog(null, "Feil verdi ble tastet inn"); //skriv ut feilmelding
       }
       else {
         ok = true;
       }
       nedb[dag] = i_nedb;
     }

   }

¨

Her er feilmeldingen kompilatoren skriver ut hvis det kan forklare noen noe:

java.lang.ArrayIndexOutOfBoundsException: 1

 

at Meteorolog.lesInnVærdata(Meteorolog.java:109)

 

at Meteorolog.actionPerformed(Meteorolog.java:189)

 

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)

 

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)

 

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)

 

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)

 

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

 

at java.awt.Component.processMouseEvent(Component.java:5134)

 

at java.awt.Component.processEvent(Component.java:4931)

 

at java.awt.Container.processEvent(Container.java:1566)

 

at java.awt.Component.dispatchEventImpl(Component.java:3639)

 

at java.awt.Container.dispatchEventImpl(Container.java:1623)

 

at java.awt.Component.dispatchEvent(Component.java:3480)

 

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)

 

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)

 

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)

 

at java.awt.Container.dispatchEventImpl(Container.java:1609)

 

at java.awt.Component.dispatchEvent(Component.java:3480)

 

at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)

 

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)

 

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

 

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)

 

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)

 

at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

Endret av Vonbo
Lenke til kommentar
Videoannonse
Annonse
java.lang.ArrayIndexOutOfBoundsException: 1

 

at Meteorolog.lesInnVærdata(Meteorolog.java:109)

 

To muligheter:

 

1. Du prøver å lese en verdi fra en ikkeeksisterende plassering i arrayet.

2. Du prøver å lagre en verdi utenfor opprettet område i et array.

 

To muligheter for å feilsøke:

 

1. Last ned Eclipse og sett breakpoints ved array-linjene.

2. Skriv noen println-er før og etter array-linjer.

Lenke til kommentar

109:       min[dag] = getMinTempInt;

 

har det noe å si at jeg deklarere arrayene i klassen, slik:

 int[] min = new int[day];
 int[] max = new int[day];
 int[] nedb = new int[day];

mens variabelen day ikke får en verdi før i init-metoden?

Endret av Vonbo
Lenke til kommentar
109:       min[dag] = getMinTempInt;

 

har det noe å si at jeg deklarere arrayene i klassen, slik:

 int[] min = new int[day];
 int[] max = new int[day];
 int[] nedb = new int[day];

mens variabelen day ikke får en verdi før i init-metoden?

Ja. Når du deklarer variabelen day uten å gi den en verdi får den verdien 0. int[] min = new int[day]; oppretter dermed en array med 0 elementer. Du må derfor vente med å opprette arrayene til etter at du har gitt day en verdi.

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...