Avatar billede gonnemand Nybegynder
29. november 2006 - 17:54 Der er 4 kommentarer og
1 løsning

Klikbar liste?

Jeg har fået lavet en liste, hvor jeg får smidt nogle ting ind, fra et array.
De forskellige ting i listen, kan godt markeres, men mit problem er så, at få programmet til at gøre noget, ud fra markeringen.
Så det jeg mangler, må være en eller anden form for ActionListener. Jeg kan bare ikke få skidtet til compile, eller i det hele taget til at virke.

Jeg har cirka 450 linier kode, så forsøger her at komme med de vigtigeste elementer i min kode.
//##############################################################
public class Player
{
  private JButton playButton;

  String[] data = new String[10];    //Listen
  JList dataList = new JList(data);  //Listen hvor der kan markeres

    public Krypit()
    {
        makeFrame();
    }
    private void openFile()
    {
    //Her bliver en fil åbnet, og sat i starten af listen:

        if(file != null)
        {
          for(int i = 8; i >= 0; i--)
          {
                data[i+1] = data[i];
          }
          data[0] = file.getName();
        }
    }
    private void klikliste()
    { //Her skal der udføres noget, når et element
      //i listen er markeret, og der trykkes på playknappen
    System.out.println(dataList.getSelectedIndex());//test
    }
    private void Playelement()
    { //Her skal der tjekkes om et element i listen er
      //markeret, og hvis der er det, skal der udføres noget
    }

    private void makeFrame()
    {  //Her bliver GUI elementerne oprette/lavet.

        frame = new JFrame("Player");

        //Selve listen der hvor elementerne kan markeres.
        dataList.setPrototypeCellValue("Index 1234567890gnhrjekwgnbjkrel"); //Sætter breden af liste vinduet.
        contentPane.add(dataList);
        dataList.addListSelectionListener(new ChoiceListener());

      playButton = new JButton("Play File...",            createImageIcon("Play.gif"));
      playButton.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) { playElement(); }
                          });
//########################################################

Der er selvfølgelig undladt en masse kode, men ovenstående
skulle være nok, mht. mit problem.

Hele konceptet er, at listen indeholder de sidste 10 afspillede filer. Og det skal så være muligt at markere en fil i listen, trykke på playknappen, og så få afspillet den fil. Så problemet er at få en slags ActionListener til at fungere på listen.

Nogen der kan hjælpe mig med det, eller evt. har link til nogle simple eksempler på nettet :-)

Pfh. tak :-)
Avatar billede gonnemand Nybegynder
29. november 2006 - 17:57 #1
Hov... linien "dataList.addListSelectionListener(new ChoiceListener());"
er noget fra mine forsøg... som ikke ville virke.
Avatar billede winners79 Nybegynder
29. november 2006 - 18:22 #2
Du behøver ikke en listener på JListen bare for at se hvad der er valgt.. hvis du har markeret noget i listen og trykker på knappen, så kan du i knappens actionlistener skrive:
system.out.println(dataList.getSelectedValue());
Avatar billede gonnemand Nybegynder
29. november 2006 - 18:40 #3
HAHA.... tænk at det skulle være så simpelt *ggg*

Jeg tjekker det lige igennem på et tidspunkt, og skriver igen med resultatet :-)
Avatar billede gonnemand Nybegynder
29. november 2006 - 20:48 #4
Det fungere jo bare helt super.. den er godkendt winners79 :-)
Avatar billede winners79 Nybegynder
29. november 2006 - 21:11 #5
godt:)
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