|
|
|
JavaFX: отчего Skin бывает null?
|
|||
|---|---|---|---|
|
#18+
Прошу помощи - в пятницу полдня бился и так и не смог одолеть эту мистику... Суть проблемы: кастомный элемент в JavaFX ИНОГДА выбрасывает исключения. Докопался до того, что исключения выпадают в результате того, что объект Skin (javafx.scene.control) у меня ноль. Документация немногословна:( Сей объект отвечает за рендеринг, порождается в единственном экземпляре конкретно для моего объекта и МОЖЕТ быть null. Собственно это все... Самое противное что он является у меня null в одном случае из 10, т.е. не то чтоб вообще все не работает, а иногда происходят сбои, понять природу которых мне не под силу, ибо условия выполнения идентичны вроде. Следующие действия проведены: 1. Кастомный объект инициализируется внутри Platform.runLater, что по моему разумению выполняется после того как все элементы на сцене "стоят", дабы избежать как раз эксепшенов... 2. Думал что-то "не успевает" установиться - попробовал тупо slepp. Не помогло. 3. Завернул метод в отдельную нить и пускал ее через внутри Task (запуск осуществлял опять же внутри Platform.runLater) - по моим ощущениям null стал прилетать намного реже, но иногда таки есть. Причем попробовал в целом случайно - искренне не понимаю отчего тут могло бы стать лучше. Но как бы то ни было - проблема до конца не устранилась. 4. setDefaultSkin (ну или подобное - я пишу по памяти) не вариант - ошибка уходит но элемент не совсем верно отображается, что не допустимо. Прошу помочь! Пните хоть где посмотреть, а то сижу думаю и ну просто уже не знаю что же еще попробовать... Может кто хоть знает отчего сей таинственный скин вообще может быть ноль и на каком этапе жизненного цикла графического элемента он устанавливается!? Заранее большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2015, 00:02 |
|
||
|
JavaFX: отчего Skin бывает null?
|
|||
|---|---|---|---|
|
#18+
Посредством диких костылей проблему решил. Таки ставлю defaultSkin Код: java 1. 2. 3. 4. 5. 6. Неверное отображение моей таблицы осуществлялось при этом из-за того что высота строки с заголовками выставлялась 0. Далее cам меняю высоту для заголовков таблицы (отчего она становилась 0, учитыввая что забирается параметр из javafx.scene.layout.Region для меня тоже загадка): Код: java 1. 2. 3. 4. Одним словом все работает но я блин не врубаюсь отчего изначально рождается Skin==null и почему при выставлении нового скина вместо null дефолтная высота вдруг становится 0, так что решение далеко от оптимума, что удручает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2015, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2124804]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 477ms |

| 0 / 0 |
