浅谈Swing构造JList

开发 后端
本文介绍构造JList类代表的Swing列表显示一个可选取对象列表,它支持三种选取模式:单选取、单间隔选取和多间隔选取。

构造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背景颜色和边框

  1. importjava.awt.BorderLayout;  
  2. importjava.awt.Color;  
  3. importjava.awt.Container;  
  4.  
  5. importjavax.swing.BorderFactory;  
  6. importjavax.swing.JFrame;  
  7. importjavax.swing.JList;  
  8. importjavax.swing.JPanel;  
  9. importjavax.swing.border.Border;  
  10.  
  11. publicclassJListBackgroundextendsJPanel{  
  12. privatestaticfinalColorlightBlue=newColor(153,204,255);  
  13.  
  14. publicJListBackground(){  
  15. super();  
  16. setBackground(lightBlue);  
  17. }  
  18.  
  19. publicstaticvoidaddComponentsToPane(Containerpane){  
  20. String[]bruteForceCode={"intcount=0",  
  21. "intm=mPattern.length();",  
  22. "intn=mSource.length();",  
  23. "outer:",  
  24. "++count;",  
  25. "}",  
  26. "returncount;",  
  27. "}"  
  28. };  
  29. JListlist=newJList(bruteForceCode);  
  30. Borderetch=BorderFactory.createEtchedBorder();  
  31. list.setBorder(BorderFactory.createTitledBorder(etch,"BruteForceCode"));  
  32. JPanellistPanel=newJPanel();  
  33. listPanel.add(list);  
  34. listPanel.setBackground(lightBlue);  
  35. list.setBackground(lightBlue);  
  36.  
  37. pane.add(listPanel,BorderLayout.CENTER);  
  38. pane.setBackground(lightBlue);  
  39. }  
  40.  
  41. publicstaticvoidmain(String[]args){  
  42. JFrameframe=newJFrame("BruteForceAlgorithm");  
  43. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  44. addComponentsToPane(frame.getContentPane());  
  45. frame.pack();  
  46. frame.setSize(800,600);  
  47. frame.setVisible(true);  
  48. }  

【编辑推荐】

  1. Swing控件可以实现水平翻转
  2. 浅析Swing体系结构
  3. 介绍Swing菜单和菜单项
  4. 浅谈学习Swing组件
  5. Swing模型和渲染器
责任编辑:佚名 来源: 电子工业出版社
相关推荐

2009-07-16 12:58:50

Swing控件

2009-07-16 16:01:55

EventQueue

2009-07-14 18:28:58

Swing入门

2009-07-15 13:06:38

Swing组件

2009-07-17 12:44:01

NetBeans开发S

2009-07-10 17:20:38

Swing构件AWT构件

2009-07-10 11:07:18

Swing和SWT

2009-07-17 16:49:18

lookandfeelSwing

2009-07-10 13:09:53

.Net与Java S

2009-07-16 16:23:59

Swing线程

2009-07-15 09:59:11

Metal观感Swing

2009-07-14 14:50:00

JOptionPane

2009-07-14 11:08:42

WebRendererSwing应用程序

2009-07-14 17:01:29

Look&FeelSwing

2009-07-15 16:29:41

Swing绘画

2009-07-10 11:31:45

Swing支持透明和不规则窗口

2011-08-04 11:15:46

Objective-C 构造函数 构造方法

2009-07-16 10:26:49

渲染器接口Swing

2009-10-12 13:32:58

VB.NET线程构造器

2009-07-14 17:38:20

Swing模式
点赞
收藏

51CTO技术栈公众号