Очень много поисков по интернету. Ответа так и не было найдено. Хочу, чтобы данный пост раз и навсегда решил для всех, кто гуглит эту проблему.
Суть проблемы :
Есть TextArea
В него передаются строки следующим образом : TextArea.appendText(String text);
Но при повторном вызове кнопки, которая должна передать строки + значение из TextField
мы получаем :
тот же самый список переменных +
тот же самый список переменных +
новая строка,
но никак не "список переменных + новая строка".
С этой проблемой сталкивался как в Swing, так и в JavaFX.
Решить не удалось.
Предполагаемые варианты решения были :
TextArea.setText("");
или
TextArea.setText(null);
или
TextArea.clear();
или
RunLater(); - многопоточность
и прочее...
Ничего не помогло.
Для тех, кто не понял показываю наглядно.
Программа при включении отражает массив переменных.
Кнопка GO - парсит значение из левого TextField и вносит его в массив. А также она должна обновить TextArea, а именно передать ему тот же массив, но с новой переменной.
Вместо этого значения дублируются.
Скриншоты :
1)Состояние при запуске программы
2)Состояние после нажатия кнопки GO
А вот и слушатель кнопки GO
@FXML
private void updateMessages(ActionEvent event) {
new ListMessages();
for (int i = 0; i < ListMessages.text.size(); i++) {
areaForMessages.appendText(ListMessages.text.get(i) + "\n");
}
}
Как мне очистить TextArea?
Ответ оказался максимально простым.
ListMessages.clear();
areaForMessages.clear();
Массив строк был static, а, следовательно, значения туда лишь добавлялись, а не перезаписывались. Выход - чистить массив.
После необходимо также почистить и ваш TextArea, тем же методом clear().
На данную ошибку натыкались многие.
Решение было очевидным. =)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Скажите пожалуйста, как узнать занимает ли Bitmap всю площадь ImageView Хочу в зависимости от ориентации картинки поворачивать её пока она не займёт...
В actionBar находится кнопка "Добавить", при нажатии на которую должен отображаться фрагмент с ListView, в котором содержится список данных, взятых...
У меня есть пакет provider/lang, в нем два языковых файлаОдин из них дефолт, на случай если язык не найден