|
|
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
Добрый день. Нужно выполнять некие действия при закрытии Stage, для этого пытаюсь повесить обработчик setOnCloseRequest, но ничего не происходит :( Подскажите почему ? Stage1 Код: java 1. 2. 3. 4. 5. 6. 7. Stage2 Код: java 1. Класс StageController Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:08 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
А как закрытие происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:09 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
И на сколько свежая версия Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:11 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
Java 8 Возможно в первом посте недостаточно конкретики, извиняюсь. В Stage1 создаем новую сцену Stage2 и вешаем (вроде-как) на ее закрытие обработчик: Код: java 1. 2. 3. 4. 5. 6. 7. Stage2 закрывается кастомной кнопкой, на клик по которой привязано закрытие: Код: java 1. Собсно вот.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:22 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
Походуй это какой-то косяк в дизайне API. Не бага. Stage.close() это тоже самое что Window.hide(), которые соответсвенно влияют на свойство Window.showing (onShowing/onHiding) Window.onCloseRequest это перехват внешнего запроса на закрытие. Криво. Путанно. Но, как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:38 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
Имеете в виду, что в коде у меня что-то "мешает" биндингу ? Нижеприведенный код так же не работает.. Ерунда какая-то :( Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 14:59 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
korshunИмеете в виду, что в коде у меня что-то "мешает" биндингу ? Нет. Под "связью" я обычно подразумеваю логическую связь в коде, а не ваш биндинг. Stage.close() -> Window.hide() -> Window.showing = false onCloseRequest в этой ветке исполнения не наблюдается. korshunНижеприведенный код так же не работает.. Ерунда какая-то :( У вас небольшая путаница в понимании. Это не удивительно API так реализован. Давайте обратим внимание на такой момент. У класса Window нет метода close(). Но есть свойства хэндлер onCloseRequest. Этот хэндлер к Stage.close() никакого отношения не имеет. Так понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 15:05 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
Это понятно, да. В принципе, это было понятно уже некоторое время назад, т.к. играясь я заметил, что если закрывать окно стандартным крестиком в правом верхнем углу, то onCloseRequest работает на ура. Сейчас вы просто, если можно так сказать, по полочкам разложили этот момент, благодарю. А как тогда быть со Stage.close(), как ловить это событие, какие есть варианты решения этой проблемы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 17:14 |
|
||
|
JavaFX, Stage.setOnCloseRequest
|
|||
|---|---|---|---|
|
#18+
korshunА как тогда быть со Stage.close(), как ловить это событие, какие есть варианты решения этой проблемы ? Например, так: http://docs.oracle.com/javafx/2/api/javafx/stage/Window.html#onHidingProperty ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2014, 17:21 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38660072&tid=2127099]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 342ms |

| 0 / 0 |
