У меня есть borderpane
в качестве корневого представления, и оно становилось довольно большим, поэтому я хотел разделить их на маленькие куски ... с View
s проблем нет, я могу легко разделить их на файлы и классы.
Проблема, с которой я столкнулся, заключается в том, что когда я хочу создать отдельный метод для слушателей root
view, он вызывает NPE.
Это был мой оригинальный код:
override val root = borderpane {
addClass(rootStyle)
paddingAll = 10.0
// listeners
setOnMouseEntered { scaleUp() }
setOnMouseExited { scaleDown() }
// end listeners
center {...}
}
}
Это мой текущий код, который выдает NPE:
override val root = borderpane {
addClass(rootStyle)
paddingAll = 10.0
setListeners() // I added this
center {...}
}
}
private fun setListeners(){
with(root) {
setOnMouseEntered { scaleUp() }
setOnMouseExited { scaleDown() }
}
}
Я пробовал без with(root)
, но IDE выделил их как ошибки.Я также пытался вызвать метод в onBeforeShow()
, он не выдавал никаких исключений, но слушатели не работали.
Как правильно обращаться с этим?В Android я легко создаю метод setListeners()
и вызываю его из onCreate()
.Что было бы оптимальным эквивалентом этого в TornadoFX?
Отредактировано: Я нашел рабочий код, но все же я не уверен, что это оптимальный способ ... если у вас есть лучшие способыЧтобы справиться с такими ситуациями, не стесняйтесь добавлять свой ответ.