首页 > 其他分享 >如何使用ListView以提供一个选择列表给用户

如何使用ListView以提供一个选择列表给用户

时间:2023-05-30 20:23:41浏览次数:28  
标签:scene fruitsListView javafx 用户 列表 new import ListView

如何使用ListView以提供一个选择列表给用户

ListView 是一个列表框控件。

它可以在一个垂直滚动区域中显示一个项目列表,并允许用户进行选择。

效果展示

image

示例代码

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ListViewExample extends Application
{
    private ListView<String> fruitsListView;

    private void getOrder()
    {
        ObservableList<String> selectedItems = fruitsListView.getSelectionModel().getSelectedItems();
        if (selectedItems.isEmpty())
        {
            System.out.println("You haven't make order yet");
        }
        else
        {
            System.out.println("Your order is:");
            for (String item : selectedItems)
            {
                System.out.println(item);
            }
        }
    }

    @Override
    public void start(Stage window) throws Exception
    {
        VBox vBox = new VBox();
        vBox.setPadding(new Insets(10));
        vBox.setSpacing(10);

        fruitsListView = new ListView<>();
        fruitsListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); // 设置可多选
        fruitsListView.getItems().addAll("Apple", "Orange", "Banana");

        Button button = new Button("Make Order");
        button.setOnAction( e -> getOrder() );

        vBox.getChildren().addAll(fruitsListView, button);

        Scene scene = new Scene(vBox, 400, 300);

        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

代码说明

  • fruitsListView = new ListView<>(); 创建了一个 ListView ,我们用它表示可选择的水果
  • fruitsListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); 表示列表可多选(按住CTRL或SHIFT时),否则默认是单选
  • ObservableList<String> selectedItems = fruitsListView.getSelectionModel().getSelectedItems(); 用于获得当前已选列表

总结

使用 ListView 提供一个选择列表给用户的简单步骤如下:

  1. 创建一个 ListView 对象,并设置其显示模式和选择模式。可以使用 new ListView<>() 来创建一个空的 ListView,然后使用 setSelectionMode() 方法设置选择模式,如 SelectionMode.MULTIPLE 表示可多选。

  2. 将项目添加到 ListView 中。使用 getItems().addAll() 方法将项目添加到 ListView 中。每个项目通常是一个字符串,表示用户可以选择的选项。

  3. 注册事件处理程序。如果需要在用户选择项目时执行特定操作,可以注册事件处理程序。例如,可以为按钮添加一个事件处理程序,当用户点击按钮时,获取当前选中的项目并执行相应的操作。

  4. 显示 ListView。将 ListView 放置在一个容器(如 VBox)中,并将容器添加到场景图中。

标签:scene,fruitsListView,javafx,用户,列表,new,import,ListView
From: https://www.cnblogs.com/javafx-howto/p/17444283.html

相关文章

  • linux之用户和权限管理
    一、Linux安全模型3A认证用户超级管理员普通用户系统用户登陆用户用户组超级管理员组普通用户组系统组普通组用户和组的关系安全上下文二、用户和组的配置文件用户和组的主要配置文件/etc/passwd/etc/shadow/etc/group/etc/gshadow文件操作vipwvigrpwckgrpckgetnet用户和组管理命令......
  • 如何使用ComboBox以获取用户的单选并可编辑
    如何使用ComboBox以获取用户的单选并可编辑ComboBox是一种单选下拉框,和ChoiceBox很类似。ComboBox不仅可以接收用户的一个选项,还可以提供可编辑框,让用户输入内容。效果展示示例代码importjavafx.application.Application;importjavafx.geometry.Insets;importjava......
  • 谷歌浏览器在用户与Document无交互时无法播放声音问题 - 记录
    谷歌禁止声音播放处理方式1、设置google浏览器,点击地址前面的图标,选择网站设置,找到声音,设置允许,需要用户配合设置2、使用window.AudioContext,需要自己写代码 接口参考地址:https://developer.mozilla.org/zh-CN/docs/Web/API/AudioContext3、使用组件,如:soundman......
  • 小程序容器与PWA的完美结合:提升应用性能与用户体验
    PWA代表“渐进式网络应用”(ProgressiveWebApplication)。它是一种结合了网页和移动应用程序功能的技术概念。PWA旨在提供类似于原生应用程序的用户体验,包括离线访问、推送通知、后台同步等功能,同时又具有网页的优势,如跨平台、无需下载安装等。 PWA使用现代的Web技术来创建......
  • thinkphp正确开发系列:使用全局中间件统计当天活跃用户
    背景:pv、uv大家应该了解,不懂得搜索一下就知道了,现在有这么一个需求:统计当天有哪些用户登录了系统,也即:同一个用户,在一天之内第一次登录系统,记为1次,一天之内的后续登录(在登录状态刷新页面)忽略,项目使用的是thinkphp6,前后端分离架构。 实现方案:我们知道,php的开发框架,如:laravel、t......
  • Spring+SpringMVC19_Spring练习-用户管理操作3
    一、用户列表展示1   二、用户列表展示2  三、用户添加操作-添加页面展示  四、用户添加操作-添加数据到数据库  五、用户添加操作-添加数据到数据库2  六、删除用户操作    ......
  • 列表加法、乘法
    fruit=["apple","orange","banana","cherry"]numlist=[6,7]newlist=fruit+numlistprint(newlist)#['apple','orange','banana','cherry',6,7]print([1,2]+[3,4......
  • jwt原理,jwt开发流程,drf-jwt快速使用,drf-jwt定制返回格式,drf-jwt自定义用户表签发,drf-j
    jwt原理:  JWT就是一段字符串,由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串1headerjwt的头部承载两部分信息:声明类型,这里是jwt声明加密的算法通常直接使用HMACSHA256公司信息......
  • 1006.Django项目用户功能之QQ登录
    一、PIL库PIL:Python图像库PIL(PythonImageLibrary)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。环境中下载:pipinstallpillow图像验证码1.初始化:字符长度,宽度,高度,字符大小;2.随机产生字符:26个大小写字母和......
  • WPF 跨用户控件传递数据
    WPF跨用户控件传递数据前言在写Wpf程序中,经常为了解耦,会写不同的用户控件组装到一个界面上,这样便于管理。但是呢,如果直接通过这个大的界面的某控件调用另一个其他用户控件中的控件,是不行滴!所以,这就是写本篇文章的理由。项目实现项目结构2个用户控件【1个存放Button、1个存......