java JList



java JList.

显示对象列表并且允许用户选择一个或多个项的组件。
ListSelectionModel类定义了3个常量来指定Jlist的选择模式
SINGLE_SELECTION:只允许每次选择一个选项
SINGLE_INTERVAL_SELECRTION:允许每次选择列表中连续的多个选项(Shift)
MULTIPLE_INTERVAL_SELECTION:允许每次选择列表中的多个选项(Control)
JList本身不带有滚动条,必须将Jlist添加到一个滚动面板(JScrollPane)中来实现滚动条功能
例一
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class ListTest extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private JList colorList;
private Container container;
private final String colorNames[]={“Black”,”Blue”,”Cyan”,”Dark Gray”,”Gray”,”Green”,”Light Gray”,”Magenta”,”Orange”,”Pink”,”Red”,”White”,”Yello”};
private final Color colors[]={Color.black,Color.blue,Color.cyan,Color.darkGray,Color.gray,Color.green,Color.lightGray,Color.magenta,Color.orange,Color.pink,Color.red,Color.white,Color.yellow};
public ListTest()
{
super(“ListTest”);
container=getContentPane();
container.setLayout(new FlowLayout());
colorList=new JList(colorNames);
colorList.setVisibleRowCount(5);
colorList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
container.add(new JScrollPane(colorList));//JList本身不带有滚动条,必须添加一个滚动面板
colorList.addListSelectionListener(new ListSelectionListener(){

public void valueChanged(ListSelectionEvent e) {
container.setBackground(colors[colorList.getSelectedIndex()]);
}

});
setSize(350,150);
setVisible(true);
}
public static void main(String args[])
{
ListTest application=new ListTest();
application.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}

}

例二
import java.awt.*;
import java.awt.event.*;


import javax.swing.*;
public class MultipleSelectionTest extends JFrame
{

/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
private JList colorList,copyList;
private JButton copyButton;
private final String colorNames[]={“Black”,”Blue”,”Cyan”,”Dark Gray”,”Gray”,”Green”,”Light Gray”,”Magenta”,”Orange”,”Pink”,”Red”,”White”,”Yello”};
public MultipleSelectionTest()
{
super(“Multiple Selection Lists”);
Container container=getContentPane();
container.setLayout(new FlowLayout());
colorList=new JList(colorNames);
colorList.setVisibleRowCount(5);
colorList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
container.add(new JScrollPane(colorList));
copyButton=new JButton(“Copy>>>”);
copyButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
copyList.setListData(colorList.getSelectedValues());
}

});
container.add(copyButton);
copyList=new JList();
copyList.setVisibleRowCount(5);
copyList.setFixedCellHeight(15);
copyList.setFixedCellWidth(100);
copyList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
container.add(new JScrollPane(copyList));
setSize(300,150);
setVisible(true);
}
public static void main(String[] args) {
MultipleSelectionTest application=new MultipleSelectionTest();
application.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

}

}