在创建JList对象时,通过构造器将要显示的数据以数组的形式传递给JList组件对象。
/*
* 基本的JList组件,只显示文本
*/
import javax.swing.*;
import java.awt.Dimension;
public class ListDemo {
JList list; //声明列表对象
JFrame frame; //声明窗体对象
JPanel contentPane; //声明面板对象
JLabel label; //声明标签对象
JScrollPane listScroller; //声明滚动面板对象
String[] provinces = {
"河南省",
"河北省",
"湖南省",
"湖北省",
"广东省",
"广西壮族自治区",
"浙江省",
"山东省"
};
public ListDemo () {
frame = new JFrame("ListDemo"); //创建窗体对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane = new JPanel(); //创建面板对象
frame.setContentPane(contentPane); //设置内容面板
label = new JLabel("请选择省份:"); //创建标签对象
//创建列表
list = new JList(provinces); //使用数组值构造JList实例
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //设置列表项只能被单选
list.setLayoutOrientation(JList.VERTICAL); //设置排列方向为垂直方向
list.setVisibleRowCount(-1); //设置全部列表项可见
list.setSelectedIndex(0); //设置默认的选择项为第一个列表项
//将列表添加到滚动面板
listScroller = new JScrollPane(list); //创建滚动面板对象,并添加列表对象到其中
listScroller.setPreferredSize(new Dimension(250, 80)); //设置滚动面板的首选大小
}
// 创建GUI界面并显示.
public void createAndShowGUI() {
//添加组件.
contentPane.add(label);
contentPane.add(listScroller);
//显示窗口.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//为事件分发线程预订一个工作:创建并显示本程序的GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ListDemo ().createAndShowGUI();
}
});
}
}