Avatar billede nielsbrinch Nybegynder
25. januar 2002 - 18:48 Der er 6 kommentarer og
1 løsning

ListSelectionListener

Sun påstår ListSelectionListener virker med at man først adder den til sin liste:

jList1.addListSelectionListener(this);

Og derefter skriver hvad den skal gøre når et element på listen vælges i en metode der skal hedde: valueChanged()

Jeg har prøvet deres eksempel, og det virker fint - jeg har prøvet at gøre det samme med min egen liste ... men det virker ikke.

Sagen er den at min liste henter sine elementer fra en Vector, men Sun henter elementerne fra en DefaultListModel ... hvad skal jeg gøre for også at bruge ListSelectionListener hvor elementerne hentes fra en Vector?

Eller er det slet ikke det der er mit problem?
Avatar billede el_gnu Nybegynder
25. januar 2002 - 18:58 #1
Har du extended JList eller hvordan?
Avatar billede el_gnu Nybegynder
25. januar 2002 - 19:20 #2
Hvis du gerne vil bruge en Vector, så kan du gøre noget à la

class minKlasse implements ListSelectionListener {
  void init() {
    Vector elementer = new Vetor();
    //add nogle elementer til vektoren
    //lav en liste med elementerne
    JList liste = new JList(elementer);
    //set denne instans af klassen som listener
    liste.addListSelectionListener(this);
  }

  //den her metode skal implementeres for at klassen er en ListSelectionListener
  public void valueChanged(ListSelectionEvent e) {
    //gør et eller andet
  }
}
Avatar billede nielsbrinch Nybegynder
27. januar 2002 - 12:24 #3
Sådan har jeg det næsten også:

public class Mainframe implements ListSelectionListener
  {
    JList jList1 = new JList();

  private void init() throws exception
  {
    jList1.addListSelectionListener(this);
  }

void makeServerList() // en funktion der køres ofte
  {
    jList1 = new JList(S.nida.getServerVector()); // en gyldig vector
    jScrollPane1.getViewport().add(jList1, null);
  }

public void valueChanged(ListSelectionEvent e)
  {
    // Hurlumhej
  }

Så den eneste forskel jeg kan se, er hvornår der lægges vector ind i jList'en, og det kan vel ikke have nogen betydning.

Jeg får følgende compilerfejl:

"Mainframe.java": Error #: 300 : class ListSelectionListener not found in class nida.Mainframe at line 18, column 35

(og det fatter jeg ikke)
Avatar billede nielsbrinch Nybegynder
27. januar 2002 - 12:25 #4
(jeg vil lige slå fast at det hele virker som det skal, hvis jeg fjerner alt der har med ListSelectionListener at gøre ... der er ikke noget galt med resten af programmet)
Avatar billede el_gnu Nybegynder
27. januar 2002 - 16:09 #5
fejlen kunne tyde på at du ikke har importeret pakken javax.swing.event.*
Avatar billede nielsbrinch Nybegynder
27. januar 2002 - 19:29 #6
Tak gnu, den lille detalje var lige præcis problemet - jeg havde importeret javax.swing.* ... troede det lå deri.
Avatar billede el_gnu Nybegynder
28. januar 2002 - 10:54 #7
kender det godt, det er ikke altid til at overskue hvilke pakker der skal importeres og de fejl compileren gi'r er ikke altid til at lure.
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