Lists
本节描述所有列表组件的常见功能,并不是可以实例化或直接使用的类。
在您的应用程序中,可以使用三种类型的列表:ListBox、ChoiceBox和ComboBox。这些组件都显示一个键值项的列表,并提供添加、删除、选择和管理列表中项的方法。
本页面概述了所有列表组件的共享特性和行为,而每个组件的具体细节则在各自的页面中进行介绍。
使用 ListItem
列表组件由ListItem对象组成,这些对象代表列表中的单个项。每个ListItem与唯一的键和显示文本相关联。ListItem类的重要特性包括:
使用API管理 ListItem 对象
各种列表组件提供多种方法来管理项列表并保持列表与客户端之间的一致状态。通过使用这些方法,您可以有效管理列表中的项。API使您能够与列表进行交互和操作,以满足应用程序的需求。
添加项
-
添加项:
- 要将
ListItem添加到列表,您可以使用add(ListItem item)方法。 - 您还可以通过指定键和文本使用
add(Object key, String text)或add(String text)方法添加新的ListItem。
- 要将
-
在特定索引处插入项:
- 要在特定索引处插入项,请使用
insert(int index, ListItem item)方法。 - 您可以使用
insert(int index, Object key, String text)或insert(int index, String text)方法插入具有键和文本的项。
- 要在特定索引处插入项,请使用
-
插入多个项:
- 您可以使用
insert(int index, List< ListItem > items)方法在指定索引处插入多个项。
- 您可以使用
删除项
-
删除项:
- 要从列表中删除项,请使用
remove(int index)或remove(Object key)方法。
- 要从列表中删除项,请使用
-
删除所有项:
- 您可以使用
removeAll()方法删除列表中的所有项。
- 您可以使用
选择项
所有列表类型实现了SelectableList接口。该接口允许以多种不同方式选择当前的ListItem。
使用给定的 ListItem
select(ListItem item)接受一个ListItem作为参数进行选择。
List demoList = new List();
ListItem demoItem = new ListItem("demo","演示项");
demoList.add(demoItem);
demoList.select(demoItem);
使用给定的 ListItem 键
selectKey(Object key)接受一个键作为参数以选择ListItem。
List demoList = new List();
demoList.add("demo","演示项");
demoList.selectKey("demo");
使用给定的 ListItem 索引
selectIndex(int index)接受一个索引作为参数以选择ListItem。
List demoList = new List();
demoList.add("demo","演示项");
demoList.selectKey(0);
其他列表操作
-
访问和更新项:
- 要通过键或索引访问项目,请使用
getByKey(Object key)或getByIndex(int index)。 - 您可以使用
setText(String text)方法更新项的文本,该方法在ListItem类中。
- 要通过键或索引访问项目,请使用
-
检索有关列表的信息:
遍历列表
所有列表组件实现了Java Iteratable接口,提供了一种高效且直观的方式来遍历列表的内容。通过这个接口,您可以轻松循环访问每个ListItem,使得以最小的努力访问、修改或对每个项执行操作变得简单。Iterable接口是Java语言的标准模式,确保您的代码对任何Java开发人员都是熟悉且易于维护的。
下面的代码片段展示了两种简单的方法来遍历一个列表:
list.forEach(item -> {
item.setText("修改: " + item.getText());
});
for (ListItem item : list) {
item.setText("修改2: " + item.getText());
}
共享列表属性
标签
所有列表组件都可以分配一个标签,即与组件关联的 描述性文本或标题。标签提供简要说明或提示,帮助用户理解特定列表的目的或预期选择。除了对可用性的重要性外,列表标签也在可访问性方面起着关键作用,使屏幕阅读器和辅助技术能够提供准确的信息并促进键盘导航。
辅助文本
每个列表组件可以使用setHelperText()方法在列表下方显示辅助文本。这些辅助文本提供额外的上下文或关于可用选项的解释,确保用户具备必要的信息以做出明智的选择。
水平对齐
所有列表组件实现了HasHorizontalAlignment接口,允许您控制组件内部文本和内容的对齐方式。
使用setHorizontalAlignment()方法设置对齐方式:
HorizontalAlignment.LEFT(默认)HorizontalAlignment.MIDDLEHorizontalAlignment.RIGHT
ListBox<String> listBox = new ListBox<>();
listBox.setHorizontalAlignment(HorizontalAlignment.LEFT);
要获取当前对齐方式:
HorizontalAlignment alignment = listBox.getHorizontalAlignment();
尺寸
webforJ中的所有列表组件也实现了HasExpanse接口,允许您调整组件的整体尺寸和视觉权重。这对于在不同的UI上下文中调整组件(例如表单、对话框、侧边栏等)非常有用。
使用setExpanse()方法设置尺寸级别。选项包括:
Expanse.NONEExpanse.XSMALLExpanse.SMALLExpanse.MEDIUM(默认)Expanse.LARGEExpanse.XLARGE
ListBox<String> listBox = new ListBox<>();
listBox.setExpanse(Expanse.LARGE);
可以使用以下方式检索当前设置:
Expanse current = listBox.getExpanse();
主题
ChoiceBox
Pick a single value from a fixed set with the ChoiceBox dropdown, including dropdown type styling, max row count, and keyboard navigation.
ComboBox
Combine a dropdown list with a text input in the ComboBox to let users select preset items or type custom values with placeholder support.
ListBox
Show a scrollable, always-visible list with the ListBox component, supporting single or multiple selection and keyboard navigation.