переменно установить ContentText диалога в javafx - PullRequest
0 голосов
/ 17 октября 2018

Чтобы пользователь мог подтвердить некоторые изменения, я хочу, чтобы появилось диалоговое окно подтверждения, спрашивающее, следует ли удалять выбранные объекты.Это переменная, конечно.Текст в диалоговом окне подтверждения должен выглядеть следующим образом:

Are you sure you want to delete   
Sample 1 from class 2  
Sample 3 from class 1  
Sample... and so on  
?

У меня есть ArrayList объектов, в котором хранится информация о семпле и названии класса.То, что я получил так далеко:

ObservableList<Samples> samples = table.getSelectionModel().getSelectedItems();
Alert info = new Alert(Alert.AlertType.CONFIRMATION);
info.setHeaderText("Confirm deletion");

if (samples.size() > 1) {
    List<String> strings= new ArrayList<>();
    samples.forEach(e ->
          strings.add(e.getSample().getSampleNr() +
                  " of class " +
                   e.getSample().getClass() +"\n")
            );
info.setContentText("Are you sure you want to delete \n" +
                    stridon't+ "?"
);

Я не знаю, может быть, мое мышление заблокировано, но я не могу заставить его работать нормально.Это выглядит так:

Are you sure you want to delete  
[Sample 1 of class 3  
, Sample 3 of class 1  
, ..and so on  
]?

Кто-нибудь знает, как избавиться от знаков [,] или, может быть, лучше сделать это?заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Еще одна вещь, которую вы можете сделать, это использовать построитель строк

StringBuilder stringBuilder = new StringBuilder("Are you sure you want to delete \n");
samples.forEach(e ->
        stringBuilder.append(e.getSample().getSampleNr())
                .append(" of class ")
                .append(e.getSample().getClass())
                .append("\n"));

info.setContentText(stringBuilder.toString());

Тестовый вывод: (пример данных)

Are you sure you want to delete
Sample 0 of class Class 0
Sample 1 of class Class 1
0 голосов
/ 17 октября 2018

Вы можете использовать только одну вещь: String.join().

String.join("delimiterHere", listHere); 


info.setContentText("Are you sure you want to delete \n" + String.join("\n", strings) + "?");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...