ListView
ListView は、項目のリストを描画する機能を提供する基本実装です。BoxView を継承します。
ListView<T> は項目として型指定され、任意のオブジェクトを取得できます。さらなる項目処理は CellFactory で行われます。便宜上、チェックされた状態を通常のチェックおよび無線型として表示する一般的な上位レベルのリスト機能がサポートされています。基本的に、取得できるのは、そのまま表示されるアイテムのリストで、どのアイテムもチェック状態にできるか、1 つのアイテムだけがチェック状態にできるかを示します。
ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));
デフォルトの項目スタイルは nocheck ですが、変更できます。
NOCHECK
, `CHECK
および `RADIO` をサポート
ListView<String> view = new ListView<>(ItemStyle.CHECKED);
カスタマイズ
個々のセルがどのように表示されるかは、CellFactory によって異なります。デフォルトの実装では、toString()
メソッドを使用して項目が表示されるだけです。
中古 CellFactory を改造することでカスタム可能です。
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());
}
}
そしてそれをファクトリとして設定します。
ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));
デフォルトのバインディング
デフォルトの表示コマンドは次のとおりです。
コマンド | 説明 |
---|---|
LINE_UP | 選択範囲が上に移動します。 |
LINE_DOWN | 選択範囲が下に移動します。 |
デフォルトのキーバインドは次のとおりです。
コマンド | 説明 |
---|---|
CursorUp | バインド ViewCommand LINE_UP |
CursorDown | バインド ViewCommand LINE_DOWN |
Enter | アクティブなアイテムを選択します。 |
スペース | アクティブな項目の選択状態を変更します。 |
デフォルトのマウスバインディグは次のとおりです。
コマンド | 説明 |
---|---|
車輪 | WheelUp | バインド ViewCommand LINE_UP |
車輪 | WheelDown | バインド ViewCommand LINE_DOWN |
リリース済み | ボタン 1 | 項目を選択してください |