1、 Java中Jlist这个Swing组件是用来展示一组项目,供用户选择的。如下图所示:

可以将要展示的项目放在一个列上,也可以展示在多一个列中。有时候要展示的项目太多,组件的尺寸又不能随意扩大,所以,该组件常常是放在Scroll pane容器中的。

2、 初始化一个Jlist组件:

下面是定义一个Jlist组件,并将它放在JscrollPane容器中的简单代码:

JScrollPane scrollPane = new JScrollPane();

scrollPane.setBounds(65, 65, 122, 144);

String listItem[] = {"苹果","香蕉","橘子","核桃"};

Jlist list = new JList(listItem);

scrollPane.setViewportView(list);

初始化一个Jlist组件时有三种方式,第一种就是上面这个例子:给构造函数传入一个数组型的参数。它的原型是:

public JList(Object[] listData)

第二种方式是向构造函数传入一个Vector型的参数,例如:

Vector v = new Vector();

v.add("广东");

v.add("上海");

v.add("深圳");

Jlist list = new JList(v);

它的原型是:public JList(Vector> listData)

如果用上面这两种方式来初始化一个Jlist组件的话,那么其中所显示的各个项目就被固定了,不能在程序中被随意增加或者删除其中任何一个项目了。但是在

程序中常常需要动态决定该组件中显示哪些项目,这时就应该指定Jlist的数据模型(list's

model)了。因为在Jlist中所显示的所有项目,都是“存储”在和它捆绑在一起的一个ListModel中的。在程序中要对Jlist中的项目进行

诸如增加、删除等操作时,都不是直接在Jlist中进行的,而是在这个ListModel中完成的。可以有两种方式指定该组件的模型,一种是在定义该组件

时作为参数传入。它的原型是:

public JList(ListModel dataModel)

另一种是调用方法:setModel来单独设置。如下示例代码:

DefaultListModel listModel = new DefaultListModel();

listModel.addElement("Debbie Scott");

listModel.addElement("Scott Hommel");

listModel.addElement("Alan Sommerer");

Jlist list = new JList(listModel);

这时,可以通过调用数据模型的下列方法来随时改变组件中所显示的项目(当然,这些方法都属于ListModel的方法):

public void add(int index, Object element);//在指定位置插入项目

public void addElement(Object obj);//在最后面插入项目

public boolean removeElement(Object obj);//删除最先匹配的项目

public Object remove(int index);//删除指定位置的项目

public Object get(int index);//获得指定位置的项目

public Object set(int index, Object element);//修改指定位置的项目

3、 设置选择模式

Jlist组件有三种选择项目的模式:

第一种是:SINGLE_SELECTION:

显然,这种模式下每次只允许选择一个项目。

第二种是:SINGLE_INTERVAL_SELECTION:

这种模式下允许连续选择多个项目。

第三种是:MULTIPLE_INTERVAL_SELECTION:

它允许间隔开地选择多个项目。这种模式是默认的选择模式,如果你要用上面两种模式,则需要显式地指定:

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

4、 操作用户选择的内容:

public Object getSelectedValue();//可以返回用户选择的项目的内容

public int getSelectedIndex();//返回用户选择的项目的下标,从0开始

public Object[] getSelectedValues()

java jlist组件_Java中Jlist的Swing组件相关推荐

  1. java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    看了一下对Java GUI讨论的帖子,所以写了一篇文章来阐述一下各种GUI技术的优劣. Java世界中,目前最知名的三大GUI库分别是: 1.AWT(Abstract Window Toolkit)抽 ...

  2. java jai例子_java – 使用JAI将swing组件写入大型TIFF图像

    我不得不加载并存储一个大的tiff(59392x40192px)与JAI.我的解决方案是:TiledImages. 我使用了TiledImage,因为我需要tile和subimages. 要使用Til ...

  3. 解决IDEA中AWT、Swing组件中文显示乱码框框

    解决IDEA中AWT.Swing组件中文显示乱码&框框 ​ 1. Run–>Edit Configurations 2. Modify options --> Add VM opt ...

  4. java 容器组件_java中的容器组件和非容器组件

    1.java使用到的图形类主要在java.awt 与javax.swing包中. 2.java.awt 与 javax.swing包的区别: ① java.awt中使用的图形类都是依赖于系统的图形库的 ...

  5. java 选项卡面板_Java中的高级组件面板——JTabbedPane(选项卡面板)

    在Java的GUI设计中,若是要想实如今一个窗体中多个界面而且能在这些界面内能够随意切换,那选项卡面板绝对是最佳的选择,下面将具体介绍JTabbedPane的使用方法java 使用方法介绍 1. 首先 ...

  6. java图片序列化_Java中的强大武器——对象的序列化

    原标题:Java中的强大武器--对象的序列化 所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象.这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象, ...

  7. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  8. java pdf库_Java中常用的操作PDF的类库

    iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...

  9. java记录类型_Java中的记录类型

    java记录类型 于2020年3月发布的JDK 14引入了记录 (预览语言功能),该记录提供了一种紧凑的语法来声明主要用于保存数据的类. 在记录中 ,所有低级,重复且容易出错的代码都类似于构造函数,访 ...

  10. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

最新文章

  1. 软件测试基础--笔记6
  2. 区块链:游戏规则的改变者
  3. python梯度下降法实现线性回归_【机器学习】线性回归——多变量向量化梯度下降算法实现(Python版)...
  4. ActivePython2.7 +Firefly1.2.2+WIN7服务器搭建过程(已通过)
  5. VI编辑器的操作模式
  6. Activiti工作流从入门到入土:入门实例
  7. fail-safe fail-fast知多少
  8. 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
  9. 结巴分词python教程_python结巴教程【python3怎么使用结巴分词】
  10. WinForm 单例模式实例
  11. python模拟登录新浪微博自动获得调用新浪api所需的code
  12. 指针的意义和linux的内存回收艺术
  13. 公众号淘宝客自营商城外卖返利小程序淘宝客小程序流量主返利app
  14. WPF TextBox多行文本框
  15. 云MAS中CMPP3.0协议封装与移动短信状态报告状态码说明
  16. 2008年IT业十大预测:微软收购雅虎
  17. 360插件化方案RePlugin初体验
  18. PS怎样把低像素图片变成高像素图片
  19. 初学者在VMware上搭建自己的CentOS8
  20. 如何用c++发出音乐

热门文章

  1. 【BZOJ-4556】字符串 后缀数组+二分+主席树 / 后缀自动机+线段树合并+二分
  2. 联合主键用hibernate注解映射方式主要有三种:
  3. 20190612每日一句
  4. unity Mesh Renderer的一点想法
  5. unity找到特定一个物体的子物体,多个子物体有相同的名称
  6. atitit 项目团队管理之道.docx
  7. Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结
  8. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义
  9. 资深架构师自述:程序员的黄金奋斗时期是前5年
  10. 阿里云毕龙飞:五个维度推进企业生产关系数字化