浅谈Swing构造JList

构造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模型和渲染器

本文名称:浅谈Swing构造JList
文章链接:http://www.shufengxianlan.com/qtweb/news38/180288.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联