JList< T> 是一个Swing组件,显示一个选项列表,让我们选择一个或多个选项。
类型参数T是它包含的元素的类型。
JList可以在屏幕上显示多个选项。
下面的代码使用数组创建一个JList
String[] items = new String[]{"Spring", "Summer", "Fall", "Winter"}; JList<String> list = new JList<>(items);
下面的代码使用Vector创建一个JList
Vector<String> items2 = new Vector<>(4); items2.add("Spring"); items2.add("Summer"); items2.add("Fall"); items2.add("Winter"); JList<String> list2 = new JList<>(items2);
要启用在JList上滚动,将它添加到JScrollPane,并将JScrollPane添加到容器。
myContainer.add(new JScrollPane(myJList));
我们可以通过三种方式配置JList的方向:
我们可以使用setVisibleRowCount(int visibleRows)方法设置我们希望在列表中看到的可见行数,而不需要滚动。
我们可以使用setLayoutOrientation(int orientation)方法设置其布局方向,其中方向值可以是JList类中定义的三个常量之一:
我们可以使用其setSelectionMode(int mode)方法配置JList的选择模式。
mode值可以是在ListSelectionModel接口中定义为常量的以下三个值之一。
在单一选择模式下,我们一次只能选择一个项目。
在单个间隔选择模式下,我们可以选择多个项目。 但是,所选项目必须始终为连续的。我们可以使用Ctrl键或Shift键和鼠标组合进行连续选择。
在多重间隔部分,我们可以选择多个项目没有任何限制。
为了处理列表选择事件,我们可以向JList添加列表选择监听器,当选择被改变时,它将通知我们。
更改选择时,将调用ListSelectionListener的valueChanged()方法。 该方法也可以在一次选择改变的中间被多次调用。
我们使用getValueIsAdjusting()方法ListSelectionEvent对象,以确保选择更改已完成。
myJList.addListSelectionListener((ListSelectionEvent e) -> { // Make sure selection change is final if (!e.getValueIsAdjusting()) { } });
要知道JList中的选择数,请调用其模型的getSize()方法。
int size = myJList.getModel().getSize();
下表列出了JList类的常用方法
ID | 方法/说明 |
---|---|
1 | void clearSelection()清除在JList中进行的选择。 |
2 | void ensureIndexIsVisible(int index)确保指定索引处的项目可见。 |
3 | int get First VisibleIndex()返回最小的可见索引。 如果没有可见项目或列表为空,则返回-1。 |
4 | int get First VisibleIndex()返回最小的可见索引。 如果没有可见项目或列表为空,则返回-1。... |
5 | int getsMaxSelectionIndex()返回最大的选定索引。 如果没有选择,则返回-1。 |
6 | int getsMaxSelectionIndex()返回最大的选定索引。 如果没有选择,则返回-1。... |
7 | int getSelectedIndex()返回最小的选定索引。 如果JList选择模式是单选,它返回所选的索引。 如果没有,则返回-1选择。 |
8 | int getSelectedIndex()返回最小的选定索引。 如果JList选择模式是单选,它返回所选的索引。 如果没有,则返回-1选择。... |
9 | E getSelectedValue()返回第一个选定的项目。 如果JList具有单选选择模式,则它是所选项的值。 如果JList中没有选择,则返回null。 |
10 | E getSelectedValue()返回第一个选定的项目。 如果JList具有单选选择模式,则它是所选项的值。 如果JList中没有选择,则返回null。... |
11 | boolean isSelectedIndex(int index)如果选择了指定的索引,则返回true。 否则,它返回false。 |
12 | boolean isSelectedIndex(int index)如果选择了指定的索引,则返回true。 否则,它返回false。... |
13 | void setListData(E [] listData)void setListData(Vector listData)在JList中设置新的选择列表。 |
14 | void setListData(E [] listData)void setListData(Vector listData)在JList中设置新的选择列表。... |
15 | void setSelectedIndices(int [] indices)在指定数组中的索引处选择项目 |
16 | void setSelectedValue(Object item,boolean shouldScroll)如果指定的项目存在于列表中,则选择该项目。 如果第二个参数为true,滚动到该项目以使其可见。 |
Java Swing教程 -Java Swing JTextAreaJTextArea可以处理多行纯文本。JTextArea本身不提供滚动,我们需要放JTextField到JScrollP...
在这个例子中,我们将展示如何使用 ANT 运行 JUnit。让我们跟随以下步骤:步骤 1:下载 Apache Ant下载 Apache ANT 操作系统文件...
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!“简单,踏实~ 读书写字放屁”一、为何用RESTful A...
正如你在前面一节看到的,在简单的场景下,MyBatis可以为你自动映射查询结果。但如果遇到复杂的场景,你需要构建一个结果映射。...
script要在带注解的映射器接口类中使用动态SQL,可以使用script元素。比如:@Update({"script","update Author","set","if te...