Java Swing中的JButton、JComboBox、JList和JColorChooser组件使用案例(3)
列表框的功能与下拉列表框相似,也是让用户在几个条目中做出选择,但又有一些区别,它提供给用户的选择模式更为多样,分别是单一选择、连续选择、多项选择,对应于 ListSelectionModel 中的3个常量:
(1) static int SINGLE_SELECTION 只能选择一条。
(2) static int SINGLE_INTERVAL_SELECTION 按住[Shift]键可选择联系的区间。
(3) static int MULTIPLE_INTERVAL_SELECTION 按住[Ctrl]键可选择多条。
构造函数如下:
(1) JList() 建立一个 JList 组件。
(2) JList(ListModel model) 根据 model 建立一个 JList 组件。
(3) JList(Object[] items) 利用数组对象建立一个 JList 组件。
(4) JList(Vector items) 利用 Vector 对象建立一个 JList 组件。
将列表框JList添加到JScrollPane中可以实现列表框的滚动.
列表(JList)组件使用示例1如下:
public class JListDemo1 extends JFrame{
Container contentPane;
JPanel jp;
JList jList1,jList2,jList3;
public JListDemo1(){
contentPane = this.getContentPane();
jp = new JPanel(new GridLayout(1,3));
//利用String数组建立JList对象
String[] fruit={"苹果","香蕉","桔子","梨","芒果"};
jList1=new JList(fruit);
//设置jList1对象的带标题边框
jList1.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果: "));
//设置jList1对象的选择模式为单一选择
jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jp.add(jList1);
//利用ListModel建立JList对象,可实现列表内容的动态
ListModel myModel=new MyModel(); //创建一个列表模型对象
jList2=new JList(myModel); //根据列表模型对象创建列表
jList2.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果: "));
//设置jList2对象的选择模式为按住[Ctrl]可多项选择
jList2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jp.add(jList2);
jList3=new JList(fruit);
jList3.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果: "));
jList3.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jList3.setVisibleRowCount(3);
jList3.setFixedCellWidth(120);
jList3.setFixedCellHeight(30);
JScrollPane jScrollPane = new JScrollPane(jList3);
jp.add(jScrollPane);
contentPane.add(jp);
this.setTitle("JListDemo");
this.setSize(340,200);
//pack();
this.setLocation(400, 300);
this.setVisible(true);
}
//通过继承DefaultListModel类可实现动态内容的列表选择
class MyModel extends DefaultListModel{
String[] fruit={"苹果","香蕉","桔子","梨","芒果"};
MyModel(){
for(int i=0;i<fruit.length;i++){
/* void addElement(Object obj)
* 将指定组件添加到此类表的末尾。*/
this.addElement(fruit[i]);
}
}
}
public static void main(String[] args){
JListDemo1 test=new JListDemo1();
}
}
运行结果如下图所示:
列表框示例2代码: