Вы правы, JavaFX (по состоянию на 2.1) не поддерживает сериализацию компонентов с использованием интерфейса Java Serializable - поэтому вы не можете использовать этот механизм.
JavaFX может десериализоваться из FXML-документ, использующий метод FXMLLoader.load () .
Трюк заключается в том, как записать ваши существующие компоненты и состояния в FXML?
Существует обсуждение форума о сериализации в FXML.
В настоящее время на платформе, которая выполняет сериализацию FXML, нет ничего публичного. По-видимому, создание родового сценария => сериализатор FXML - довольно сложная задача (и для этого я не знаю публичного стороннего API). Было бы не слишком сложно перебирать сценарий и записывать FXML для ограниченного набора компонентов и атрибутов.
Эти переменные получены через вызовы find_package(XXX)
.
Такие вызовы перенаправляются, зависят от библиотеки, либо от скрипта FindXXX.cmake
(поставляется с CMake или содержится в проекте, который его использует), либо к скрипту XXXConfig.cmake
(поставляется с самой библиотекой).
Итак, для определения имен значимой переменной вам необходимо проконсультироваться с соответствующим скриптом. Как правило, интерфейс скрипта (переменные ввода-вывода) описывается в комментариях в начале сценария.
Документация для скриптов FindXXX.cmake
, поставляемых с CMake, может быть прочитана на страницах документации CMake о модули .
У вас нет. Это зависит от модуля find для библиотеки.
В разделе «Написание модулей поиска» вы видите, что переменные заданы в модуле. При проверке модуля FindOpenGL.cmake
в каталоге CMake-Modules вы увидите имя переменной.
Помимо ознакомления с документацией модуля поиска, вы также можете использовать свойство CMake VARIABLES
, чтобы дать вам переменные, которые были определены вашим вызовом find_package()
.
Для примера следующий код:
cmake_minimum_required(VERSION 3.2)
project(FindPackageVars)
get_directory_property(_vars_before VARIABLES)
find_package(OpenGL)
get_directory_property(_vars VARIABLES)
list(REMOVE_ITEM _vars _vars_before ${_vars_before})
foreach(_var IN LISTS _vars)
message(STATUS "${_var} = ${${_var}}")
endforeach()
Выводит на мою машину:
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- FIND_PACKAGE_MESSAGE_DETAILS_OpenGL = [/usr/lib/x86_64-linux-gnu/libGL.so][/usr/include][v()]
-- OPENGL_FOUND = TRUE
-- OPENGL_GLU_FOUND = YES
-- OPENGL_INCLUDE_DIR = /usr/include
-- OPENGL_INCLUDE_PATH = /usr/include
-- OPENGL_LIBRARIES = /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_LIBRARY = /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_XMESA_FOUND = NO
-- OPENGL_gl_LIBRARY = /usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_glu_LIBRARY = /usr/lib/x86_64-linux-gnu/libGLU.so
-- OPENGL_xmesa_INCLUDE_DIR = OPENGL_xmesa_INCLUDE_DIR-NOTFOUND