Avatar billede crox Nybegynder
24. marts 2004 - 13:13 Der er 2 kommentarer og
1 løsning

DefaultListModel og Vector

Hej!!
Er der nogen der kan give mig en lille forklaring på hvordan DefaultListModel og en Vector hænger sammen.... Og gerne på en list pædagoisk måde da jeg ikke lige er så skarp i JAVA....
mvh CR
Avatar billede iskanu Nybegynder
24. marts 2004 - 18:43 #1
Hej,
Uden at vide hvor stor en kendskab du har til Java, vil jeg forsøge at tage det fra den ene ende:
Vector er en almennyttig implementation af det, noget, man kan opfatte som en dynamisk array, og noget til. Det er DefaultListModel også, den er dog en del af javax.swing (som man bruger til at lave grafiske grænseflader med).
Det er også her, at DefaultListModel kommer ind i billedet: Det er en Vector-lignende klasse, der kan fungere som en *model* i en JList (javax.swing.JList).
En JList er en GUI (grafisk grænseflade) - element, der som navnet siger, kan vise en liste (Lodret felt, hvor de enkelte rækker kan vælges enkeltvis eller kombineret).

For at sådan en JList skal vise noget, skal den have en implementatation af ListModel interfacet. ListModel implementeres af AbstractListModel klassen, der extendes af DefaultListModel klassen.

(Har du ikke styr på nedarvning i Java, så bør du nok kigge på Interfaces og subclassing for at forstå det.)

Med andre ord, så bruger JList klassen DefaultListModel til at lagre dens viste elementer.

Skal du altså bruge et sted at opbevare objekter i, skal du altså bruge Vector (se bemærkning senere). En DefaultListModel er noget JList bruger som default til at opbevare de elementer, den skal vise. Du skal imidlertid ikke nødvendigvis selv oprette en DefaultListModel for at kunne vise noget i en JList, da den kan også tage en (almindelig) array eller en Vector i stedet, og selv lave det om til en DefaultListModel.

For helhedens skyld bør det vel nævnes at når DefaultListModel subclasser AbstractListModel, kan du også gøre det og lave din egen klasse - eller implementere ListModel interfacet.

Bemærkning til Vector (som lovet tidligere): En alternativ til Vector er ArrayList (java.util.ArrayList), som er en nyere løsning der klarer samme opgave.
Avatar billede iskanu Nybegynder
24. marts 2004 - 19:11 #2
Opfølgning:
For at gøre det mere pædagogisk, vil jeg henvise til de glimrende ressourcer, Sun stiller til rådighed om Java. Hvis du går ind på
http://java.sun.com
og vælger "API Specifications" i venstre menu,
og i næste vindue vælger

"J2SE 1.4.2 API Specification"

under "Java 2 Platform, Standard Edition (J2SE)"
kommer du til siden
http://java.sun.com/j2se/1.4.2/docs/api/
hvor hele sproget er dokumenteret.
I venstre-nederste frame kan du bruge browserens søgefunktion (ctrl-f på engelsk og ctrl-b på dansk Internet Explorer) til at finde de klasser du er interesseret at læse om.
Du kan følge de angivne links, hvor du bl.a. kan finde frem til JList, hvor du igen kan se hvordan den bruger ListModel og DefaultListModel.

For at forstå meget af det der bliver skrevet er det vigtigt at du forstår nedarvning  (inheritance). Du kan læse om det i lærebøger eller følge en af de mange gode tutorials, Sun stiller til rådighed, f.eks.:
http://java.sun.com/docs/books/tutorial/java/concepts/inheritance.html

Håber at det er et udtømmende svar.
Avatar billede crox Nybegynder
24. marts 2004 - 19:20 #3
Super... Det er helt perfekt... Tak
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