Kezdőoldal » Számítástechnika » Programozás » Lista és model miért nem jó?...

Lista és model miért nem jó? (javaban, többi lent)

Figyelt kérdés

public class tanulok {

//(..itt van néhány sor,lásd:frame, panel))

JList <osztaly> lista;

DefaultListModel model = new DefaultListModel <>();


public tanulok(){

beallit(); //külön fgv-ben pl. frame mérete,hogy ne zavarjon

lista = new JList<>();

lista.setModel(model);

}



}



class osztaly(){

String nev;

double atlag;


}



Van egy ilyenem is,amit egy tanulok-ban lévő gombra hívok meg:

class atlagol_fgv implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

osztalya;

int i= model.getSize();


while(0<=i){

a=(osztaly_diak) model.get(i);


//(ide jön majd,hogy mit kezdjen a kinyert dolgokkal)


i--;


}



És ezzel van baja:

a=(osztaly_diak) model.get(i);



Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 21 >= 21

at java.util.Vector.elementAt(Vector.java:470)

...


21-es szám akkor jön elő,ha 21 elem kerül a listába.


Remélem érthető voltam és köszi a segítséget.:)

Most csinálnék először ilyent.


2014. dec. 7. 02:50
 1/2 anonim ***** válasza:

Egyértelműen le van írva a hibaüzenetben.

Túlindexeled a listát.

Ha 21 elem van benne, akkor nincs 21. index benne, csak 20.

2014. dec. 7. 08:02
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Pontosan, mivel az indexelés nullától történik.


H a tömb mérete (model.getSize();) 2-őt vissza, akkor azt jelenti, hogy a többen van egy 0. és egy 1. elem, azaz 2 db.


Viszont neked a while-ban a feltételed (ami nem is értem miért nem for vagy foreach), i-től vagyis a korábbi példámat tekintve 2-től indul, azaz model.get(2);-t kér le, ami nem létezik.

2014. dec. 7. 11:27
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!