У меня есть элемент управления, который должен реагировать на некоторые виды событий и поэтому добавляет себя в список слушателей в конструкторе. Конечно, он также должен удалиться, но в то время как Swing и RCP имеют методы dispose()
, я не могу найти их в JavaFx.Dispose Метод управления JavaFX
public class MyTable extends TableView implements MyListener {
public MyTable() {
Events.addListener(this);
}
public disposeOrSomething() {
Events.removeListener(this);
}
// actual implementation of MyListener
}
Не подвешивайте на статике класс Events
, подумал. Для меня не имеет значения, добавляет ли элемент что-то статическое или нет. Важно: есть две части приложения, которые не связаны, за исключением общей системы событий. Поэтому, когда слушающая часть исчезает (например, окно закрывается), конечно, слушатель должен быть удален.
До тех пор пока вы не узнаете, когда слушатель был непосредственно подключен к жизненному циклу элемента управления, его зарегистрировали. Но теперь в JavaFX, который не будет работать, и из-за слабо связанных файлов FXML я не вижу никого другого, у кого есть необходимая информация (элемент управления и «событие закрытия окна»).
Итак, что такое хороший способ очистки после контроля, когда они больше не используются?
AFAIK, нет встроенного 'распоряжаться()' (или эквивалент) метод в JavaFX – Spotted
В Swing, на что «распоряжаться» -метом вы имеете в виду? – Puce
@Puce Я не вижу, как это добавляет вопрос, но все окна имеют метод 'dispose()'. –