列表视图

ListView 是一个基础实现,提供绘制项目列表的功能。ListView 继承自 BoxViewspring-doc.cadn.net.cn

ListView<T> 被类型化为其项目,可以接收任何对象。进一步的项目处理则在 CellFactory 中进行。为了方便,支持用于通用的高级列表功能,将检查状态显示为正常检查无线电类型。本质上,你可以拥有一个列表显示为任何项目都可以有检查状态状态,或者只有一个项目可以有检查状态。spring-doc.cadn.net.cn

ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));

默认的物品样式是nocheck,但可以更改。spring-doc.cadn.net.cn

支持不检查, '检查以及“RADIO”spring-doc.cadn.net.cn

ListView<String> view = new ListView<>(ItemStyle.CHECKED);

定制化

单个单元格的显示方式取决于 CellFactory。默认实现仅仅用toString()方法。spring-doc.cadn.net.cn

它可以通过修改二手CellFactory来定制。spring-doc.cadn.net.cn

record ExampleData(String name) {
};

static class ExampleListCell extends AbstractListCell<ExampleData> {

	public ExampleListCell(ExampleData item) {
		super(item);
	}

	@Override
	public void draw(Screen screen) {
		Rectangle rect = getRect();
		Writer writer = screen.writerBuilder().style(getStyle()).build();
		writer.text(getItem().name(), rect.x(), rect.y());
		writer.background(rect, getBackgroundColor());
	}
}

并设置成工厂:spring-doc.cadn.net.cn

ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));

默认绑定

默认视图命令有:spring-doc.cadn.net.cn

表1。视图命令
命令 描述

LINE_UPspring-doc.cadn.net.cn

选拔会往上移动。spring-doc.cadn.net.cn

LINE_DOWNspring-doc.cadn.net.cn

选择权向下移动。spring-doc.cadn.net.cn

默认按键绑定如下:spring-doc.cadn.net.cn

表2。 钥匙
命令 描述

CursorUp(光标上游)spring-doc.cadn.net.cn

绑定视图命令LINE_UPspring-doc.cadn.net.cn

光标下spring-doc.cadn.net.cn

Bound ViewCommand LINE_DOWNspring-doc.cadn.net.cn

进入spring-doc.cadn.net.cn

选择主动物品。spring-doc.cadn.net.cn

空间spring-doc.cadn.net.cn

更改当前的物品选择状态。spring-doc.cadn.net.cn

默认鼠标绑定有:spring-doc.cadn.net.cn

表3。 鼠
命令 描述

轮子 |轮子起spring-doc.cadn.net.cn

绑定视图命令LINE_UPspring-doc.cadn.net.cn

轮子 |轮下spring-doc.cadn.net.cn

Bound ViewCommand LINE_DOWNspring-doc.cadn.net.cn

已发布 |按钮1spring-doc.cadn.net.cn

选择物品spring-doc.cadn.net.cn

事件

事件的发送取决于使用的列表类型。spring-doc.cadn.net.cn

表4。列表视图事件
事件 描述

ListViewOpenSelectedItemEventspring-doc.cadn.net.cn

激活物品请求打开。spring-doc.cadn.net.cn

ListViewSelectedItemChangedEventspring-doc.cadn.net.cn

当前物品会被更改。spring-doc.cadn.net.cn