Java - JList


Objekt klase JList predstavlja listu tekstualnih stavki. Lista tekstualnih stavki se može postaviti tako da korisnik može odabrati jednu ili više stavki. Nasljeđuje klasu JComponent. Pogledajmo deklaraciju za klasu javax.swing.JList:

public class JList extends JComponent implements Scrollable, Accessible  


Najčešće korišteni konstruktori

Konstruktor Opis
JList() Kreira JList sa praznim modelom samo za čitanje.
JList(ary[] listData) Kreira JList koji prikazuje elemente u navedenom nizu.
JList(ListModel<ary> dataModel) Kreira JList koji prikazuje elemente iz navedenog modela koji nije nulti.


Najčešće korištene metode

Metod Opis
Void addListSelectionListener(ListSelectionListener listener) Koristi se za dodavanje slušaoca na listu, da bude obavješten svaki put kada dođe do promene izbora.
int getSelectedIndex() Koristi se za vraćanje najmanjeg odabranog indeksa ćelije.
ListModel getModel() Koristi se za vraćanje modela podataka koji sadrži listu stavki koje prikazuje komponenta JList.
void setListData(Object[] listData) Koristi se za kreiranje ListModel-a samo za čitanje iz niza objekata.


Primjer Java JList

// Importovanje potrebnih biblioteka
import javax.swing.*;  
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;

public class Main  
{  
     Main(){  
        // Kriranje Forme
        JFrame f= new JFrame("Primjer JList");  
        DefaultListModel<String> l1 = new DefaultListModel<>();
        
        // Dodavanje stavki u formu
        l1.addElement("Stavka 1");  
        l1.addElement("Stavka 2");  
        l1.addElement("Stavka 3");  
        l1.addElement("Stavka 4");  
        
        // Postavljanje veličine liste
        JList<String> list = new JList<>(l1);  
        list.setBounds(100,100, 75,75);  
        
        // Dodavanje elemenata na Formu
        f.add(list);  
        f.setSize(400,400);  
        f.setLayout(null);  
        f.setVisible(true);  
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }  
    // Metoda main
    public static void main(String args[])  
    {  
        new Main();  
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako:



Primjer Java JList sa ActionListener

import javax.swing.*;  
import java.awt.event.*; 
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;

public class Main  
{  
    Main(){  
        JFrame f= new JFrame("Primjer JList");  
        final JLabel label = new JLabel(); 
        
        label.setSize(500,100);  
        JButton b=new JButton("Prikaži");  
        b.setBounds(200,150,80,30);  
        
        final DefaultListModel<String> l1 = new DefaultListModel<>();  
        l1.addElement("C");  
        l1.addElement("C++");  
        l1.addElement("Java");  
        l1.addElement("PHP");  
        
        final JList<String> list1 = new JList<>(l1);  
        list1.setBounds(100,100, 75,75);  
        
        DefaultListModel<String> l2 = new DefaultListModel<>();  
        l2.addElement("Turbo C++");  
        l2.addElement("Struts");  
        l2.addElement("Spring");  
        l2.addElement("Laravel");  
        
        final JList<String> list2 = new JList<>(l2);  
        list2.setBounds(100,200, 75,75);  
        
        f.add(list1); f.add(list2); f.add(b); f.add(label);  
        f.setSize(450,450);  
        f.setLayout(null);  
        f.setVisible(true);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        b.addActionListener(new ActionListener() {  
            public void actionPerformed(ActionEvent e) {   
                String data = "";  
                if (list1.getSelectedIndex() != -1) {                       
                    data = "Odabrani programski jezik: " + list1.getSelectedValue();   
                    label.setText(data);  
                }  
                if(list2.getSelectedIndex() != -1){  
                    data += ", Odabrani Framework: ";  
                    for(Object frame :list2.getSelectedValues()){  
                       data += frame + " ";  
                    }  
                }  
                label.setText(data);  
            }  
        });   
     }  
    public static void main(String args[])  
    {  
        new Main();  
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako: