28. februar 2003 - 13:29Der er
14 kommentarer og 1 løsning
Arraylist () og Jlist
Hejsa, Jeg har et arrayliste (Firmaliste), der består af en række objekter(Firma objekter). Nu vil jeg så gerne have det sådan at jeg ud fra variablen navn i firmaobjekterne laver en jlist(eller alternativ). Det skal desuden være sådan at jeg når man så marker et firma i jlisten så skal diverse information omkring firmaet vises. Kan det lade sig gøre, og hvordan (vil blive meget glad for en stump kode!)
Er det ellers muligt at lave en jlist som består af Firmalisten eller dens objekter?
Lad os forestille os at Firma.java ser således ud: import java.io.*; import java.util.*; import java.text.*;//Til DateFormat
public class Firma implements Serializable { private String navn; private String land;
public Firma(String navn,String land) { this.navn=navn; this.land=land; }
public String getNavn(){return navn; } public String getLand(){return land; }
public void setNavn(String navn){this.navn=navn; } public void setLand(String land){this.land=land; }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Eller bliver man nød til at lave det sådan at man løber Firmalisten igennem og kopier alle navnene over i en String[], for derefter ved en markering af et element i jlisten at søge Firmalisten igennem og vise info omkring firmaet?
Hvis du vil det vil det være helt kanont! Det bliver nemlig en del sletning og tilføjning! Vi kan evt fikse noget med nogle ekstra points, hvis du vil?
Nu bliver jeg lidt nysgerrig, så lige for at vende tilbage til jlist... så er jeg ikke lige med på hvad du mener med "Det er toString() metoden på Firma der bestemmer hvad der skal vises i listen." Hvor er det jeg skal kalde denne metode?
DU skal ikke kalde toString. Det gør JList selv når den viser objekter i listen. Hvis du kigger på public String toString() {...} på Firma.java, så er det dens returværdi du ser i listen.
Jeg har din tabel klar med tilføjning og sletning om ca. 15min.
1) Jeg er ikke helt med på linie: Object[] messages = new Object[2]; Hvad gør den? bare det at der er pladser til objekter i messages?
2) Jeg er ikke helt med på hvad de forskellige parametre betyder i: JOptionPane.showOptionDialog(this,messages,"Indtast", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0] );
3)Hvad vil det sige når man opretter en metode af typen Object?, at man skal have returneret et Object - det kunne være fx et Firma objekt? fx her public Object getValueAt(int row, int column) { Firma element = (Firma)data.get(row);
Hvad vil det sige når man opretter en metode af typen Class? som fx her: public Class getColumnClass(int column) { return getValueAt(0, column).getClass(); }
1) Object arrayet indeholder de komponenter der skal smides på dialogen. De bliver smidt på under hinanden. 2) 0 = ejer container objektet ( den container den skal centreres i ) 1 = arrayet af komponenter der skal på 2 = Titel 3 = en int værdi 4 = en int værdi 5 = et evt. ikon 6 = knapperne fornede 7 = den default valgte knap forneden
3) Object er det objekt alt andet i Java arver fra. Når du returnerer et objekt i en metode betyder det generelt at metoden kan returnere forskellige objekter, der er subklasser til Object (Alle objekter). Netop i getValueAt(...) metoden returnerer den et objekt, fordi celler kan indeholde meget forskelligt. Class returnerer bare hvilken klasse objektet er en instans af.
Lige et lille spørgsmål til dig vith, hvis det er okey? Hvad er det præcis der i din overstående kode gør at selvom man ikke direkte trykker på et element i jlisten (hvis jlisten ikke er fyldt ud og man fx trykke for neden for det nederste element) at det nederste element blot vil blive valgt? Jeg kan ikke helt gemmemsku det :o(
Synes godt om
Ny brugerNybegynder
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.