javaswing图形界面开发(第8章)

上传人:san****019 文档编号:70832098 上传时间:2019-01-18 格式:PPT 页数:34 大小:2.29MB
返回 下载 相关 举报
javaswing图形界面开发(第8章)_第1页
第1页 / 共34页
javaswing图形界面开发(第8章)_第2页
第2页 / 共34页
javaswing图形界面开发(第8章)_第3页
第3页 / 共34页
javaswing图形界面开发(第8章)_第4页
第4页 / 共34页
javaswing图形界面开发(第8章)_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《javaswing图形界面开发(第8章)》由会员分享,可在线阅读,更多相关《javaswing图形界面开发(第8章)(34页珍藏版)》请在金锄头文库上搜索。

1、2,列表框-将“所有选项”都列在框中,提供用户选择。 下拉列表框-用户未操作列表框时,只显示出一个数据。但当单击 下拉箭头时,数据将以下拉方式显示。 说明:列表框、下拉列表框均属于“选择性组件”。虽然用途相同, 但各有其使用环境。 一般用法:当数据较少时,使用列表框; 当数据较多时,尽量使用下拉列表框。,3,8.1 如何使用列表框JList,列表框组件以“目录形式”显示字符串,允许用户从中选取一项或多项,其中每一项数据称为元素(也称为:列表项Item)。 JList类为用户提供了可选择的一组选项,以一列或多列的形式显示。 JList可有多个选项,这些选项通常被存放在一个可以滚动的窗格内。 创建

2、列表框的方式:数组方式 Vector方式 ListModel方式,4,5,程序运行结果:,说明:将一些数据存储到数组中,再通过列表框的构造器 “JList(String text)”将这些数据列举出来。,6,7,程序运行结果:,说明:与数组方式相似,只是“存储数据的方式”不同。 主要创建了三个列表框对象,有两个列表框对象是通过数组方式创建, 而另一个则使用Vector方式创建。 通过建立的Vector数据结构对象,将数据存储到这个对象中,然后将这 个对象显示到列表框中。,图8.3:使用Vector创建列表框,8,8.1.3 使用ListModel方式创建列表框,ListModel是一个接口,其

3、主要功能是定义一些方法,让JList组件取得每个项目的值,并可限定项目的显示时间与方式。,表8.1 ListModel接口定义的方法,9,只有实现ListModel接口中的所有方法,才能利用构造器建立JList。 不过,若要实现ListModel所有的方法比较麻烦,因为一般不会用addListDataListener()和removeListDataListener()这两个方法。 因此,Java提供了“AbstractListModel”抽象类,此抽象类已经实现addListDataListener()与removeListDataListener()两个方法。 只要继承AbstractLi

4、stModel类,则无须实现上述两个方法,只需实现getElementAt()与getSize()方法即可。,AbstractListModel抽象类:,10,11,程序运行结果:,图8.4:使用ListModel方法创建JList,12,Java本身还提供了另一个类-“DefaultListModel”实体类。 此类继承了AbstractListModel抽象类,并实现了其中所有的抽象方法。因此,无需再让程序员自己实现任何方法,相当方便。 DefaultListModel类提供了不少好用的方法,如: 增加一个项目-addElement() 删除一个项目-removeElement() 查询项

5、目-getElementAt() 汇出项目-copyInto() 另外,还可直接动态地更改JList的项目值,而不需要自行产生一个Vector对象,相当于JList(Vector v)构造函数而言,更加方便实用。,DefaultListModel实体类:,13,DefaultListModel程序示例:,14,程序运行结果:,图8.5:使用DefaultListModel方法创建JList,15,8.1.4 列表框选取事件的处理,JList类中“addListSelectionListener()”方法,可检测用户是否对JList的选取有任何改变。 ListSelectionListener接

6、口中只定义一个方法,即: valueChanged(ListSelectionEvent e); 只有实现这个方法,才能在用户改变选取值时,取得用户最后的选取状态。,16,addListSelectionListener()方法程序示例:,17,18,8.1.5 列表框双击事件的处理,列表框的常用事件: -如何处理在JList上双击鼠标的操作。 JList本身未提供EventListener监听器,为能处理双击操作,必须利用“鼠标监听器”来捕获双击鼠标。 如何知道在哪个Item上双击鼠标? 可使用JList类提供的“LocatToindex()方法”获知。,19,列表框双击事件处理程序示例:,

7、代码:,20,图8.8 列表框的双击事件,程序说明:首先创建一个DefaultListModel类的继承类,然后将其实例 化成两个不同的列表框。当双击左边的列表框中的数据时, 即会在右边添加相应的数据,反之亦然。,21,8.2 如何使用下拉列表框JComboBox,22,8.2.1 使用数组和Vector创建下拉列表框,23,运行结果:,说明: 使用Vector和数组差不多。 JComboBox控件有addItem方法,此方法在 JList中不具备。,24,8.2.2 使用ComboBoxModel创建下拉列表框,ComboBoxModel是一个接口,定义了两个方法,即: setSelecte

8、dItem() & getSelectedItem() 目的:选取某个项目后,可正确显示出所选取的项目。 说明:利用ComboBoxModel实现JComboBox,类似于ListModel。 不过,ComboBoxModel接口是继承自ListModel接口,若要利用 ComboBoxModel来构造JComboBox,除了要实现ComboBoxModel的 两个方法外,还必须实现ListModel定义的4个方法。,25,介绍JList时,曾提到“AbstractListModel”抽象类, 其已经实现了ListModel接口中的addListDataListener()和removeLis

9、tDataListener()两个方法。 因此,只要继承AbstractListModel,即可不用实现这两个方法,只须实现:getElementAt() getSize() setSelectedItem() getSelectedItem(),26,27,图8.11 使用ComboxBox创建下拉列表框,运行结果:,28,同JList一样,Java对于JComboBox也提供了另一个类,即: DefaultComboBoxModel 此类继承了AbstractListModel抽象类,实现了ComboBoxModel接口。因此,不需要再实现getSize()、getElementAt()、

10、setSelectedItem()与getSelectedItem()方法。 利用DefaultComboBoxModel类,可动态更改JComboBox的选项值。当没有必要自己定义特殊的ComboBoxModel时,使用DefaultComboBoxModel就显得非常方便。,DefaultComboBoxModel实体类:,29,30,JComboBox的事件处理也可分为两种: 取得用户选取的项目;(点击鼠标) 用户在JComboBox上输入完毕后按回车键。 对于的处理,可使用ItemListener实现。 对于的处理,可使用ActionListener实现。,8.2.3 下拉列表框的事件处理,31,32,运行结果:,图8-1314 下拉列表框处理,33,8.3 本章小结,本章主要内容: 针对“列表框”和“下拉列表框”的常用构造器、事件处理方法等,结合实例形成一个比较清晰的认识。 不过,每一节中只介绍了比较常用的一些方法。,34,8.4 本章习题,习题:1,2,3,4,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号