Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Swing JList dodavanje elemenata

[es] :: Java :: Swing JList dodavanje elemenata

[ Pregleda: 2166 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Swing JList dodavanje elemenata24.12.2007. u 09:32 - pre 197 meseci
Pozdrav Java ekipi,

ja sam iz sveta .Net-a, ali mi je zatrebalo da nesto odradim u Java appletima.
Dakle, problem je u tome sto ne uspevam nikako da u swing JList koji sam postavio
na formu, dodam ili oduzmem elemente.

Sledeci kod ne radi kako treba:

model = new DefaultListModel();
model.addElement("item 1");
model.addElement("item 2");
model.addElement("item 3");
jListZadaci.setModel(model);

Znaci, kod prodje, ali kao rezultat ja ne vidim nista na listi, osim da su pobrisani
stari elementi koji su bili na listi (koje sam postavio u editoru forme), i kao da postoje
3 reda elemenata ali se ne vidi tekst, i male su visine (par piksela), kao sto se vidi na
slici.

Dalje sledi pitanje, sta ako sam imao nesto elemenata u toj listi, oni su nestali zbog
jListZadaci.setModel(model);
Zar ne bi bilo logicnije da se nekako uzme taj model sa getModel(), pa da se sa njim
dalje radi, dodaje i oduzima. Ali ni to ne radi, probao sam sledeci kod:

model = (DefaultListModel) jListZadaci.getModel(); <-- EXCEPTION
model.addElement("item 1");


Molim vas samo da me ne upucujete na Sun-ov help, posto nije bio koristan, a takodje
ni drugde na netu bas nisam uspeo da nadjem resenje.


Pera
Prikačeni fajlovi
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.finsoft.co.yu.



+7 Profil

icon Re: Swing JList dodavanje elemenata24.12.2007. u 12:02 - pre 197 meseci
Bice da negde gresis, jer ovo dole radi. Koji ti exception daje ?
Code:

DefaultListModel dlm = (DefaultListModel) jListZadaci.getModel();
dlm.addElement("item 1");
 
Odgovor na temu

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Re: Swing JList dodavanje elemenata24.12.2007. u 12:07 - pre 197 meseci
Ono sto mi sledeci kod:

DefaultListModel dlm = (DefaultListModel) jListZadaci.getModel();

daje, jeste:

java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:853)
at Karta.MojApplet.init(MojApplet.java:45)
at sun.applet.AppletPanel.run(AppletPanel.java:379)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: Karta.MojApplet$4
at Karta.MojApplet.getVehicles(MojApplet.java:250)
...


Kao da nije u redu kastovanje sa ListModela na DefaultListModel!
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.finsoft.co.yu.



+7 Profil

icon Re: Swing JList dodavanje elemenata24.12.2007. u 12:24 - pre 197 meseci
Izgleda da trenutni model nije DefaultListModel. Vidi prvo kog je tipa.

System.out.println("model=" + jListZadaci.getModel().getClass().getName());
 
Odgovor na temu

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Re: Swing JList dodavanje elemenata24.12.2007. u 13:06 - pre 197 meseci
OK, dobio sam:

model=Karta.MojApplet$4

i sto bi rekla pesma jedna pesma, "... i sta sad?..."


 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.finsoft.co.yu.



+7 Profil

icon Re: Swing JList dodavanje elemenata24.12.2007. u 15:22 - pre 197 meseci
Eto sad znas zasto ti kod puca ;) Model je jednog tipa a ti pokusavas da ga kastujes u drugi.
So, ako hoces da koristis i menjas postojeci model onda treba da kastujes u njega.

Ovo Karta.MojApplet$4 znaci da je model definisan kao inner klasa u MojAplet klasi.
Nadji tu klasu u source fajlu vidi kako se zove i kastuj u nju.
 
Odgovor na temu

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Re: Swing JList dodavanje elemenata25.12.2007. u 09:25 - pre 197 meseci
Pozdrav,

ne bih da budem zakeralo, ali i dalje ne radi.
Sta sam prvo uradio, u form editoru sam izbrisao sve Iteme koje
sam ranije uneo kao neke nazovi default vrednosti. Kao rezultat:
System.out.println("model=" + jListZadaci.getModel().getClass().getName());
dobijem:
model=javax.swing.JList$3

A exception na kodu:

DefaultListModel dlm = (DefaultListModel) jListZadaci.getModel();
dlm.addElement("item 1");

je i dalje ovakav:

java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:853)
at Karta.MojApplet.init(MojApplet.java:44)
at sun.applet.AppletPanel.run(AppletPanel.java:379)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: javax.swing.JList$3
at Karta.MojApplet.getVehicles(MojApplet.java:251)
at Karta.MojApplet.userInit(MojApplet.java:59)
at Karta.MojApplet$1.run(MojApplet.java:47)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Sad izvini, ali ja bas nisam na ti sa ovim modelima, pojma nemam ni sta su, a kamoli cemu sluze.
Znam da ako kastujem na DefaultListModel, onda imam .Add, .Remove i slicno. Ja u svom kodu
nemam nikakvu klasu koju stavljam u taj jList, hence, nemam pojma zasto mi trazi da je to neki
specijalan model. Ja hocu samo listu stringova, i nista vise da ne komplikujem.

Pera
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.finsoft.co.yu.



+7 Profil

icon Re: Swing JList dodavanje elemenata25.12.2007. u 12:02 - pre 197 meseci
Glavno pitanje je dal si koristio neki model kada si pravio JList ili ne.
Ako jesi onda mozes da kastujes samo u taj model. Ako pak nisi onda ti kastovanje i ne treba.

Znaci moze i bez modela. Recimo napravis listu od stringova;
Code:

String[]] items = { "item 1", "item 2", "item 3" };
JList jl = new JList(items);

A posle sadrzaj menjas sa
Code:

String items2 = {"item 1", "item 2", "item 3", "item 4", "item 5" };
jl.setListData(items2);
jl.validate();

Tu onda nemas mogucnosti dinamickog dodavanja pojedinih stavki (metodi add, remove,..)
nego uvek setujes ceo sadrzaj liste.

Ako hoces modele a nemas potrebu da pravis svoj custom model, uzmi DefaultListModel.

Listu pravis ovako
Code:

DefaultListModel model = new DefaultlistModel();
model.add("item 1");
model.add("item 2");
model.add("item 3");
JList jl = new JList(model)

a posle sadrzaj menjas (na primer dodas dva nova itema na postojece) sa
Code:

(DefaultListModel) dlm = (DefaultListModel) jl.getModel();
dlm.addElement("item 4");
dlm.addElement("item 5");



 
Odgovor na temu

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Re: Swing JList dodavanje elemenata25.12.2007. u 13:19 - pre 197 meseci
Pozdrav,

ovaj deo koda mi je prosao,

Vector data = new Vector();
data.add("item1");
data.add("item2");
data.add("item3");
jListZadaci.setListData(data);
jListZadaci.validate();


Mene ipak interesuje ovaj drugi, koji omogucava dinamicko, a ne da moram
sam da kupim postojece elemente pa da ih posle dodajem...

DefaultListModel model = new DefaultlistModel();
model.add("item 1");
model.add("item 2");
model.add("item 3");
JList jl = new JList(model)


bi mogao da prodje, ako bi mi ti pomogao, kako da kada kreiram tu sada
novu instancu, kako da je postavim tamo gde je bila stara na formi. Mislim,
kad uradim ovo:
JList jl = new JList(model)
samo sam kreirao instancu JLista, koji nije nigde postavljen na formi.

U svakom slucaju, hvala i na dosadasnjoj pomoci, ako ne resim na ovaj drugi
nacin sa modelom, resicu na onaj zaobilazni...

Jos jednom samo da nmapomenem, pogledaj moj prvi post, taj kod radi, dakle radi .add
ali je problem sto se ti elementi ne vide kako trebaju. Misem mogu da selektujem te
elemente, samo sto se tekst ne vidi, a i kao da je visina(velicina fonta) par piksela, pa
otud ona plava strafta - selektovan red. Ja sam u pocetku ciljao da ce mi neko reci da je to bug,
i da se resava tako i tako. Uz to, napomena da koristim NetBeans 6 beta, zajedno sa najnovijim
JRE, ili JDK kako se vec krste...

UPS, samo trenutak, nasao sam neku gresku! 14:28

Pera
 
Odgovor na temu

PeraKojovic
Petar Kojovic
Novi Sad

Član broj: 95569
Poruke: 56
*.ns.ac.yu.



Profil

icon Re: Swing JList dodavanje elemenata25.12.2007. u 13:38 - pre 197 meseci
Ja se izvinjavam,

nasao sam gresku, "...i da opet je ljudski faktor bio u pitanju.."

Dakle u delu

model.addElement("item 1");

sam davao
model.addElement(null); <--nesto.nesto, sto je bilo null

Govorim za prvi kod, tj.

model = new DefaultListModel();
model.addElement("item 1");
model.addElement("item 2");
model.addElement("item 3");
jListZadaci.setModel(model);

Ovo i dalje prolazi, i sada se vide elementi (koji sada vise nisu null).

Jos jednom moje izvinjenje, i bgd2500 hvala na pomoci, jer me to i navelo da
nadjem gresku.

Pera
 
Odgovor na temu

[es] :: Java :: Swing JList dodavanje elemenata

[ Pregleda: 2166 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.