JavaFX:在ListView中包装文本

时间:2018-11-27 05:10:15

标签: listview javafx javafx-8

我正在尝试构建文本编辑器。我正在使用ListView来存储评论。我希望字符串自动包装,而不必水平滚动,这样长字符串就不必滚动太多了。 请提出一种将字符串包装在ListView中的方法。

编辑1: 我的ListView是从FXML初始化的 编辑2: 我终于可以完成初始化工作了。

1 个答案:

答案 0 :(得分:0)

您要做的就是使用您自己的自定义单元格覆盖默认单元格,该单元格的宽度为List的宽度,并且还允许自动换行。该实现基于CellLabled

的事实
list.setCellFactory(param -> new ListCell<DataModel>(){
            @Override
            protected void updateItem(String item, boolean empty) {
                super.updateItem(item, empty);
                if (empty || item==null) {
                    setGraphic(null);
                    setText(null); 
                    // other stuff to do...

                }else{

                    // set the width's
                    setMinWidth(param.getWidth());
                    setMaxWidth(param.getWidth());
                    setPrefWidth(param.getWidth());

                    // allow wrapping
                    setWrapText(true);

                    setText(item.toString());


                }
            }
        });