Java如何创建JList组件?

JList是显示对象列表并允许用户选择一个或多个项目的组件。要创建的实例,JList我们可以传递向量,对象数组或ListModel。在此示例中,我们将传递一个对象数组,其中包含日期,字符串和数字作为参数。

默认情况下,列表不显示滚动条。要给我们的JList组件一个滚动条,我们必须用来包装它JScrollPane。

package org.nhooo.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();
    }

    // 初始化我们的CreateJListDemo的组件和配置。
    private void initialize() {
        // 定义窗口标题,大小和默认的关闭操作。
        this.setTitle("Create JList Demo");
        this.setSize(300, 175);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        // 创建一个任意对象数组以供JList显示。
        Object[] data = new Object[] {
            new Date(), "One", 1, Long.valueOf("12345"), "Four", "Five"
        };

        // 创建JList的实例并将数据变量作为
        //它的初始内容。默认情况下,JList没有
        // 滚动行为,因此我们创建一个JScrollPane作为容器
        // JList。
        JList list = new JList(data);
        JScrollPane scrollPane = new JScrollPane(list);

        // 添加一个按钮以关闭程序。
        JButton button = new JButton("Close");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });

        // 将面板布局设置为BorderLayout并将列表放置在
        // 中心和南部的按钮。
        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);
            }
        });
    }
}