构造JList类代表的Swing列表显示一个可选取对象列表,它支持三种选取模式:单选取、单间隔选取和多间隔选取。
JList类把维护和绘制列表的工作委托给一个对象来完成。一个列表的模型维护一个对象列表,Swing列表单元绘制器将这些对象绘制在列表单元中。
缺省情况下,Swing列表单元绘制器是DefaultListCellRenderrer的实例,图标和字符串按原样显示,而所有其他类型对象的绘制方式是:通过显示从这些对象的toString返回的字符串来绘制这些对象。
构造JList方法
◆JList()构造一个使用空模型的 JList。
◆JList(ListModel dataModel),使其使用指定的非 null 模型显示元素。
◆JList(Object[] listData),使其显示指定数组中的元素。
◆JList(Vector> listData),使其显示指定 Vector 中的元素。
常用方法
◆addListSelectionListener(ListSelectionListener listener)为每次选择发生更改时要通知的列表添加侦听器。
◆addSelectionInterval(int anchor, int lead)将选择设置为指定间隔与当前选择的并集。
◆createSelectionModel()返回 DefaultListSelectionModel 实例。
◆getCellRenderer()返回呈现列表项的对象。
◆getModel()返回保存由 JList 组件显示的项列表的数据模型。
◆getSelectedIndex()返回所选的第一个索引;如果没有选择项,则返回 -1。
◆getSelectedValue()返回所选的第一个值,如果选择为空,则返回 null。
◆getSelectionModel()返回当前选择模型的值。
◆isSelectionEmpty()如果什么也没有选择,则返回 true。
◆setListData(Object[] listData)根据一个 object 数组构造 ListModel,然后对其应用 setModel。
◆setListData(Vector> listData)根据 Vector 构造 ListModel,然后对其应用 setModel。
◆setModel(ListModel model)设置表示列表内容或“值”的模型,并在通知 PropertyChangeListener 之后清除列表选择。
◆setSelectedIndex(int index)选择单个单元。
◆setSelectionMode(int selectionMode)确定允许单项选择还是多项选择。
◆setSelectionModel(ListSelectionModel selectionModel)将列表的 selectionModel 设置为非 null 的 ListSelectionModel 实现。
例:采用数组对象构造JList并设置JList背景颜色和边框
- importjava.awt.BorderLayout;
- importjava.awt.Color;
- importjava.awt.Container;
- importjavax.swing.BorderFactory;
- importjavax.swing.JFrame;
- importjavax.swing.JList;
- importjavax.swing.JPanel;
- importjavax.swing.border.Border;
- publicclassJListBackgroundextendsJPanel{
- privatestaticfinalColorlightBlue=newColor(153,204,255);
- publicJListBackground(){
- super();
- setBackground(lightBlue);
- }
- publicstaticvoidaddComponentsToPane(Containerpane){
- String[]bruteForceCode={"intcount=0",
- "intm=mPattern.length();",
- "intn=mSource.length();",
- "outer:",
- "++count;",
- "}",
- "returncount;",
- "}"
- };
- JListlist=newJList(bruteForceCode);
- Borderetch=BorderFactory.createEtchedBorder();
- list.setBorder(BorderFactory.createTitledBorder(etch,"BruteForceCode"));
- JPanellistPanel=newJPanel();
- listPanel.add(list);
- listPanel.setBackground(lightBlue);
- list.setBackground(lightBlue);
- pane.add(listPanel,BorderLayout.CENTER);
- pane.setBackground(lightBlue);
- }
- publicstaticvoidmain(String[]args){
- JFrameframe=newJFrame("BruteForceAlgorithm");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- addComponentsToPane(frame.getContentPane());
- frame.pack();
- frame.setSize(800,600);
- frame.setVisible(true);
- }
- }
【编辑推荐】