Avatar billede trp79 Nybegynder
14. marts 2003 - 13:53 Der er 2 kommentarer og
1 løsning

KeyActionListener på Jlist.

Hejsa,
En har en jlist der indeholder objekter. Når jeg trykker på musen på et element vises dets data i nogle textfelter. Men hvis man bruger piltasterne til at gå ned på næste element så fremkommer dataene ikke. Hvordan gør jeg sådan at de gør det?
Avatar billede viht Nybegynder
14. marts 2003 - 14:45 #1
Du skal ikke bruge en keyListener, men en ListSelectionListener:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

import java.util.*;

import java.io.Serializable;

    public class TestFrame extends JFrame {
   
    private DefaultListModel model;
    private JList list;
   
    private ArrayList firmaer;
   
    public TestFrame() {
   
        super("Test");
        setSize(600,400);
       
        firmaer = new ArrayList();
       
        firmaer.add(new Firma("Lego", "Danmark"));
        firmaer.add(new Firma("Mærsk", "Danmark"));
        firmaer.add(new Firma("Codecompletion", "Danmark"));
        firmaer.add(new Firma("Tartan Pub", "Danmark"));
        firmaer.add(new Firma("Buddy Holly", "Danmark"));
   
        list = new JList(firmaer.toArray());
        list.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if( !e.getValueIsAdjusting() ) {
                    int index = list.getSelectedIndex();
                    System.out.println ("Selected: "+list.getModel().getElementAt(index));
                }
            }
        });
       
        getContentPane().add(new JScrollPane(list), BorderLayout.CENTER);
    }
   
    private class Firma implements Serializable {
   
        private String navn;
        private String land;
   
        public Firma(String navn, String land) {
            this.navn = navn;
            this.land = land;
        }
   
        public void setNavn(String navn) { this.navn = navn; }
        public void setLand(String land) { this.land = land; }
        public String getNavn() { return (this.navn); }
        public String getLand() { return (this.land); }
   
        public String toString() {
       
            StringBuffer toString = new StringBuffer();
            toString.append(navn +" ["+land+"]");
               
        return new String(toString);
        }
    }
}
class Go {
    public static void main(String[] args) {
        new TestFrame().show();
    }
}
Avatar billede viht Nybegynder
18. marts 2003 - 09:04 #2
Vågn op trp79!
Avatar billede trp79 Nybegynder
19. marts 2003 - 07:54 #3
Beklager den lange svar tid, er ved at flytte i øjeblikket....

Det virker jo bare som det skal :o)
Endnu engang tak for hjælpen

mvh
Torben
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

IT-JOB