Avatar billede learnmejava Nybegynder
02. december 2002 - 18:29 Der er 16 kommentarer og
2 løsninger

ClassCastException

En der ved hvorfor denne linie giver ClassCastException
-----------
int aar = ((Integer)comboÅr.getSelectedItem()).intValue();
Avatar billede disky Nybegynder
02. december 2002 - 18:32 #1
Det er fordi det du får fra .getSelectedItem() ikke kan castes til en Integer.
Avatar billede disky Nybegynder
02. december 2002 - 18:33 #2
Hvad for items er det du har smidt i din 'comboÅr' ?
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:35 #3
comboÅr = new JComboBox();
            contentPane.add(comboÅr);
            comboÅr.addItem("2002");
            comboÅr.addItem("2003");
            comboÅr.addItem("2004");
            comboÅr.addItem("2005");
            comboÅr.addItem("2006");
            comboÅr.addItem("2007");
            comboÅr.addItem("2008");
            comboÅr.addItem("2009");
            comboÅr.addItem("2010");
            comboÅr.addItem("2011");
            comboÅr.addItem("2012");
            comboÅr.setEditable(false);
Avatar billede disky Nybegynder
02. december 2002 - 18:38 #4
Det er ikke Integers men String's du adder.

prøv med

int aar = Integer.parseInt((String)comboÅr.getSelectedItem()).intValue();
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:39 #5
Jeg skal bruge en dato valg ud fra 3 Combo...
---------------
int aar = ((Integer)comboÅr.getSelectedItem()).intValue();
int mdr = ((Integer)comboMdr.getSelectedItem()).intValue();
int dag = ((Integer)comboDag.getSelectedItem()).intValue();
int dato = aar*10000 + (mdr)*100 + dag;
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:40 #6
Jeg får denne fejl:
int cannot be dereferenced
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:42 #7
int aar = Integer.parseInt((String)comboÅr.getSelectedItem()).intValue();
int mdr = Integer.parseInt((String)comboMdr.getSelectedItem()).intValue();
int dag = Integer.parseInt((String)comboDag.getSelectedItem()).intValue();
int dato = aar*10000 + (mdr)*100 + dag;
Avatar billede arne_v Ekspert
02. december 2002 - 18:45 #8
Prøv med:

int aar = Integer.parseInt(comboÅr.getSelectedItem());
int mdr = Integer.parseInt(comboMdr.getSelectedItem());
int dag = Integer.parseInt(comboDag.getSelectedItem());
int dato = aar*10000 + (mdr)*100 + dag;
Avatar billede disky Nybegynder
02. december 2002 - 18:46 #9
hmmm.

hvad med:
int aar = (Integer.parseInt((String)comboÅr.getSelectedItem())).intValue();

Jeg har ikke lige en java compiler i nærheden så jeg kan ikke teste det
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:47 #10
arne v - Det har jeg prøver men det giver fejlen
cannot resolve symbol
Avatar billede arne_v Ekspert
02. december 2002 - 18:47 #11
disky> parseInt returnerer en int - ikke en Integer, så
intValue skal ikke med.
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:47 #12
disky - samme fejl...
Avatar billede arne_v Ekspert
02. december 2002 - 18:48 #13
Hvilket symbol ?
Avatar billede disky Nybegynder
02. december 2002 - 18:48 #14
hehe det har du da helt ret i.

Så må dette virke:
int aar = Integer.parseInt((String)comboÅr.getSelectedItem());
Avatar billede arne_v Ekspert
02. december 2002 - 18:50 #15
Gæt: comboÅr skal være comboAar ??
Avatar billede disky Nybegynder
02. december 2002 - 18:51 #16
ikke ud fra hvad han skriver højere oppe, et object navn er jo unicode så et 'å' skulle ikke give problemmer
Avatar billede arne_v Ekspert
02. december 2002 - 18:52 #17
"cannot resolve symbol" antyder et eller andet stavet forkert.
Avatar billede learnmejava Nybegynder
02. december 2002 - 18:54 #18
Takker
Løsning:
------------
int aar = (Integer.parseInt((String)comboÅr.getSelectedItem()));
int mdr = (Integer.parseInt((String)comboMdr.getSelectedItem()));
int dag = (Integer.parseInt((String)comboDag.getSelectedItem()));
int dato = aar*10000 + (mdr)*100 + dag;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester