How do I create a JList component?

JList is a component that displays a list of objects and allow user to select one or more items. To create an instance of JList we can pass a vector, an array of objects or a ListModel. In this example we’ll passing an array of objects that contains a date, string and numbers as the parameters.

By default the list does not display a scrollbar. To give our JList component a scrollbar we must wrap it with a JScrollPane.

package org.kodejava.example.swing;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Date;

public class CreateJListDemo extends JFrame {

    public CreateJListDemo() {
        initialize();
    }

    //
    // Initialize the components and configuration of our CreateJListDemo.
    //
    private void initialize() {
        //
        // Define the window title, size and the default close operation.
        //
        this.setTitle("Create JList Demo");
        this.setSize(300, 175);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //
        // Create an array of arbitrary objects for the JList to display.
        //
        Object[] data = new Object[] {
                new Date(), "One", 1, Long.valueOf("12345"), "Four", "Five"
        };

        //
        // Create an instance of JList and pass data variable as the
        // initial content of it. By default the JList does not have a
        // scrolling behaviour, so we create a JScrollPane as the container
        // for the JList.
        //
        JList list = new JList(data);
        JScrollPane scrollPane = new JScrollPane(list);

        //
        // Add a button to close the program.
        //
        JButton button = new JButton("Close");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });

        //
        // Set the panel layout to BorderLayout and place the list on the
        // center and the button on the south.
        //
        this.setLayout(new BorderLayout(5, 5));
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        getContentPane().add(button, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new CreateJListDemo().setVisible(true);
            }
        });
    }

}

Wayan

Programmer, runner, recreational diver, live in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, Hibernate / JPA.

Leave a Reply