package dsm;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder;
public class Test extends JFrame
{
public Test()
{
setTitle("Java列表框组件示例");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体退出时操作
setBounds(100,100,300,200); //设置窗体位置和大小
JPanel contentPane=new JPanel(); //创建内容面板
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); //设置面板的边框
contentPane.setLayout(new BorderLayout(0, 0)); //设置内容面板为边界布局
setContentPane(contentPane); //应用内容面板
JScrollPane scrollPane=new JScrollPane(); //创建滚动面板
contentPane.add(scrollPane,BorderLayout.CENTER); //将面板增加到边界布局中央
JList list=new JList();
//限制只能选择一个元素
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane.setViewportView(list); //在滚动面板中显示列表
String[] listData=new String[12]; //创建一个含有12个元素的数组
for (int i=0;i<listData.length;i++)
{
listData[i]="这是列表框的第"+(i+1)+"个元素~"; //为数组中各个元素赋值
}
list.setListData(listData); //为列表填充数据
}
public static void main(String[] args)
{
Test frame=new Test();
frame.setVisible(true);
}
}
上述代码调用了 setSelectionMode() 方法,并指定 ListSelectionModel.SINGLE_SELECTION 常量来限制列表框一次只能选择一项。该方法支持如下3个常量:
1、 MULTIPLE_INTERVAL_SELECTION
可以选择不相邻的几项
2、SINGLE_INTERVAL_SELECTION
只能选择连续的几项
3、SINGLE_SELECTION
一次只能选择一项