JComBox下拉框
JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型;
JComboBox<?> combox = new JComboBox<>();
以下实例化下拉框的时候我泛型写的全都是String类型。
下拉框有三种实现方式,现在是第一种(直接添加内容):
实例化出来下拉框后,使用addItem(“添加的内容”)方法向下列框汇总添加一行内容,如图:
最后向窗体容器添加组件
第二种方式(数组):
声明一个字符串数组,应该说实例化下拉框时泛型写的什么类型,你声明数组时就创建什么类型的数组。
与第一种方式不同的是,实例化下拉框组件时,在最后的小括号内,需要添加参数,这个参数是刚刚创建的数组。数组中每一个索引值就代表了下拉框中的一行可选内容数据如图:
最后设置该组件的坐标和大小,将下拉框组件添加进窗体容器中。
第三种实现方式(模型):
首先,与第二种方式一样,先创建内容数组。
然后将下拉框组件实例化出来,但与第二种方式不同的是,实例化下拉框组件时,不需要在这里添加内容数组!
核心点,创建一个下拉框数据模型,可以不写泛型,在实例化时,参数中把内容数组添加上
接着,使用下拉框组件调用setModel方法,将下拉框数据模型给添上。
最后设置坐标和大小,将下拉框组件添加进窗体容器中。
如何获取到下拉框中选择到的数据呢?
创建一个JButton按钮,给这个按钮添加上事件监听。
JComBox组件提供了getSelectedIndex()和getSelectedItem()两个方法,getSelectedIndex()获取的是所选值在下拉框中的索引,getSelectedItem()获取的是所选值的内容。
在选中下拉框后,点击JButton按钮,将两个值输出出来。如图:
另外,再提一嘴,jdk为JComBox组件提供了setEditable()方法,这个方法可以更改下拉框的编辑状态,默认是false,要改成true的话,如果你更改了下拉框的值,那么获取数据的时候,它获取的会是你更改后的值,但是!它的索引值会变成-1,感兴趣的可以自己写写。虽然没什么大用= =、
JList列表
JList组件——列表框。它有两种方式被创建出来,实际上也就跟上面JComBox的第一二种方法一样,一个实例化时参数中放进内容数组,一个创建列表数据模型,稍微不一样的是数据模型。
第一种方式(内容数组):
不说了,该说的都在上面JComBox组件的第二种实现方式里说了,直接看图:
第二种实现方式(列表模型):
1、还是先创建一个内容数组,然后实例化JList对象,接着创建列表模型,这里在创建的时候不要添加参数;
2、都实例化出来后,循环遍历一次内容数组,将数组中的内容通过addElement()方法,全部添加进列表模型中。
3、使用JList组件调用setModel()设置模型,将创建好的模型设置。
4、设置列表的选择模式,使用的时setSelectionMode()方法,在这个方法可以选择模式,参数在图中的注释中已经截图出来,请自行选择试试。
5、设置列表的坐标和大小,将下拉列表添加进窗体容器中。
如何获取到下拉列表选择的值?
还是先创建JButton按钮,用于触发监听事件,在触发事件的方法中,需要使用java.util包中提供的List类接收列表框选中的数据,泛型填写你内容数组的是什么数据类型,这里的泛型就写什么数据类型。
至于为什么要用List来接收数据,因为,列表框不像下拉列表只能选择一个内容,列表框可以选择多个,所以需要使用List类接收。
说了接收数据,那么怎么获取数据?列表框的组件提供了getSelectedValuesList()方法,用JList组件调用这个方法就可以获取到选中内容的值;该方法返回的是数组,所以使用List类接收
循环遍历,打印输出,得出列表内容见上图控制台。