2015-01-10 2 views
3

У меня есть приложение javafx, которое позволяет пользователю добавлять столько, сколько ему нужно.Сохранение пользовательского интерфейса в fxml: javafx

загружает мой главный корень сцены из fxml файла, который содержит по умолчанию пользовательского интерфейса.

Как пользователь меняет интерфейс, я меняю сцену с помощью аннотации @FXML.

Эти изменения являются временными, и пользовательский интерфейс будет таким же, как и в случае следующего запуска приложения. Итак, вот мой вопрос:

Как сохранить изменения, внесенные в интерфейс приложения во время выполнения, в новый файл fxml?

+1

Нет встроенного способа сделать это. Вам нужно сохранить состояние приложения (состояние, которое вас интересует), когда оно закрывается (вы можете переопределить 'Application.stop()' для выполнения кода, когда приложение завершается); то в методе 'initialize()' вашего контроллера прочитайте последнее состояние и примените его к запущенному приложению. –

ответ

2

Файл FXML - это XML-файл, который позволяет писать с любым XML Libary.

Но я бы рекомендовал сохранить кнопки в файле json или properties и добавить их обратно в Code.

Так что, если приложения прекращают сохранять кнопки в файл, и если приложения начинают снова добавлять их в сцену, это намного проще, чем сохранение их в файл FXML.

Но если вы действительно хотите сделать это с FXML взглянуть на https://bitbucket.org/gluon-oss/scenebuilder может быть, вы можете использовать некоторые из Кодекса от SceneBuilder, чтобы сохранить сцену в качестве FXML.

Смежные вопросы