A Simple program demonstrating the working of JList list in Java using Swing framework.
package com.hubberspot.swing.example;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class ListDemo extends JFrame {
private String[] ipl = {
"Deccan Chargers", "Kolkata Night Riders",
"Mumbai Indians", "Chennai Super Kings",
"Rajasthan Royals", "Royal Challengers Bangalore",
"Kings XI Punjab", "Pune Warriors India",
"Delhi Daredevils"
};
private int counter = 0;
private DefaultListModel model = new DefaultListModel();
private JList list = new JList(model);
private JTextArea textarea = new JTextArea(ipl.length, 20);
private JButton button = new JButton("Add Team");
private ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(counter < ipl.length) {
model.add(0, ipl[counter++]);
} else {
button.setEnabled(false);
}
}
};
private ListSelectionListener lstlistener =
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) return;
textarea.setText("");
for(Object item : list.getSelectedValues())
textarea.append(item + "\n");
}
};
public ListDemo() {
textarea.setEditable(false);
setLayout(new FlowLayout());
for(int i = 0; i < 4; i++)
model.addElement(ipl[counter++]);
add(textarea);
add(list);
add(button);
list.addListSelectionListener(lstlistener);
button.addActionListener(listener);
}
public static void main(String[] args) {
setFrame(new ListDemo(), 300, 450);
}
public static void
setFrame(final JFrame frame, final int width, final int height) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
frame.setTitle(frame.getClass().getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.setVisible(true);
}
});
}
}
Output of the program :
