Сохранение состояния окна в Java/SWT

Я пытаюсь создать небольшое приложение с использованием Java и SWT для графического интерфейса. Я ищу способ сохранить в каком-либо файле настройки, установленные пользователем, я имею в виду, если размер окна был изменен, то этот новый размер должен быть сохранен для следующего запуска приложения. То же самое с некоторыми элементами управления, такими как текстовое поле и так далее.

Я придумал две идеи, чтобы решить эту проблему:

  • Используйте классические созданные вручную файлы .ini для хранения этих настроек. Но выглядит некрасиво и сложно в уходе.
  • Сериализация/десериализация всего класса, содержащего графический интерфейс. Не знаю, возможно ли это вообще.

Любые идеи? Что я должен делать?

Заранее спасибо.

Добавлено:

Я не занимаюсь проектом Eclipse RCP, это просто обычное SWT-приложение.

Подробнее: я уже пытался использовать сериализацию, но виджеты SWT не поддерживают ее, поэтому единственный другой вариант, который я нашел, — создать другой класс, скажем, Конфигурация, пометить его как сериализуемый и удерживать там значения моих виджетов. Почти как использование java.util.prefs.Preferences, но не так просто.

Я все еще жду, чтобы увидеть, есть ли другой способ сделать это, возможно, с некоторой привязкой.


person Tute    schedule 22.07.2010    source источник
comment
Мне сказали, что можно сериализовать компоненты Swing. Может быть, вы могли бы попробовать с SWT.   -  person zneak    schedule 22.07.2010
comment
Я не мог заставить это работать, все виджеты swt не поддерживают сериализацию.   -  person Tute    schedule 24.07.2010


Ответы (1)


Взгляните на шаблон проектирования Memento.

Eclipse RCP уже повторно использует этот принцип, вы можете обратиться к следующему интерфейсу для получения дополнительной информации:

org.eclipse.ui.IMemento
person Michael Spector    schedule 22.07.2010
comment
Спасибо, но я только что нашел класс java.util.prefs.Preferences, я думаю, что это лучше, чем то, что вы предлагаете, мне все равно придется выполнять привязку вручную. - person Tute; 26.07.2010