JavaFX: перенос текста в ListView - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать текстовый редактор.Я использую ListView для хранения комментариев.Я хочу, чтобы строка была обернута автоматически, без необходимости прокручивать ее горизонтально, чтобы длинную строку не нужно было так много прокручивать.Пожалуйста, предложите способ обернуть строку в ListView.

РЕДАКТИРОВАТЬ 1: Мой ListView инициализируется из FXML. РЕДАКТИРОВАНИЕ 2: Я мог бы наконец получить инициализацию работает.

1 Ответ

0 голосов
/ 27 ноября 2018

Все, что вам нужно сделать, это переопределить ячейку по умолчанию, используя собственную ячейку, ширина которой равна ширине List, а также позволяет переносить текст.Реализация основана на том факте, что Cell s Labled

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());


                }
            }
        });
...