将复选框添加到 Vaadin 网格

Adding Checkboxes to Vaadin Grids

我在 Vaadin 14 中构建了一个网格,使用解析器从文件中提取如下所示:

 Grid<String[]> grid = new Grid<>();
        
        try {
            List<String[]> entries = reader.readAll();
            
            // Assume the first row contains headers
            String[] headers = entries.get(0);
            
            for (int i = 0; i < headers.length-1; i++) {
                final int columnIndex = i;
                String header = headers[i];
                String humanReadableHeader = SharedUtil.camelCaseToHumanFriendly(header);
                grid.addColumn(str -> str[columnIndex]).setHeader(humanReadableHeader).setSortable(true).setWidth("100px");
                
            }
            
            grid.setItems(entries.subList(1, entries.size()));

我接下来要做的是向每一行添加一个 CheckBox,这将 return 相应行中数据的可视化。所以我的问题有两个:

  1. 是否已经存在通过单击一行中的任意位置来模拟此行为的函数?
  2. 如果不是,初始化网格以适应这种情况的最佳方法是什么?

只需添加一个组件列:

Grid<String[]> grid = new Grid<>();
  
try {
    List<String[]> entries = reader.readAll();
        
    // Assume the first row contains headers
    String[] headers = entries.get(0);
        
    for (int i = 0; i < headers.length-1; i++) {
       final int columnIndex = i;
       String header = headers[i];
       String humanReadableHeader = SharedUtil.camelCaseToHumanFriendly(header);
       grid.addColumn(str -> str[columnIndex]).setHeader(humanReadableHeader).setSortable(true).setWidth("100px");
    }
        
     // Here goes your checkbox column
     grid.addComponentColumn(item -> {
       // Create the checkbox 
     }).setHeader("<the header>");

    grid.setItems(entries.subList(1, entries.size()));