An example:
private Component getGridTest() {
var data = new ArrayList<ArrayList<String>>(){{
add(new ArrayList<>(){{
add("11");
add("12");
add("13");
add("14");
}});
add(new ArrayList<>(){{
add("21");
add("22");
add("23");
add("24");
}});
add(new ArrayList<>(){{
add("31");
add("32");
add("33");
add("34");
}});
add(new ArrayList<>(){{
add("41");
add("42");
add("43");
add("44");
}});
}};
var grid = new Grid<ArrayList<String>>();
grid.addColumn(new ComponentRenderer<>(p -> {
var tx = new TextArea();
tx.getStyle().set("overflow", "auto");
tx.getStyle().set("resize", "both");
tx.getStyle().set("border", "1px solid red");
return tx;
}));
grid.addColumn(new ComponentRenderer<>(p -> {
var tx = new TextArea();
tx.getStyle().set("overflow", "auto");
tx.getStyle().set("resize", "both");
tx.getStyle().set("border", "1px solid red");
return tx;
}));
grid.addColumn(new ComponentRenderer<>(p -> {
var tx = new TextArea();
tx.getStyle().set("overflow", "auto");
tx.getStyle().set("resize", "both");
tx.getStyle().set("border", "1px solid red");
return tx;
}));
grid.addColumn(new ComponentRenderer<>(p -> {
var tx = new TextArea();
tx.getStyle().set("overflow", "auto");
tx.getStyle().set("resize", "both");
tx.getStyle().set("border", "1px solid red");
return tx;
}));
grid.setItems(data);
return grid;
}