Я хотел сделать отдельный метод для слушателей в корневом представлении, но он выбрасывает NPE - PullRequest
0 голосов
/ 26 января 2019

У меня есть 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?

Отредактировано: Я нашел рабочий код, но все же я не уверен, что это оптимальный способ ... если у вас есть лучшие способыЧтобы справиться с такими ситуациями, не стесняйтесь добавлять свой ответ.

1 Ответ

0 голосов
/ 26 января 2019

Уххх, это было прямо у меня под носом.Я передал this (borderpane) в метод, и он работал как ожидалось.

override val root = borderpane{
    setListeners(this)
}


private fun setListeners(borderPane: BorderPane) {
    with(borderPane) {
        setOnMouseEntered { scaleUp() }
        setOnMouseExited { scaleDown() }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...