Вы должны использовать подход модель-представление-контроллер . Вы только сериализуете модель, а не представление. Представление должно быть заполнено из модели. Сериализация компонентов Swing в любом случае не рекомендуется:
Хотя компоненты Swing реализуют интерфейс Serializable, они не переносимы между различными версиями виртуальной машины Java
Глядя на то, что у вас есть, у вас должно быть несколько классов, которые являются вашей моделью и содержат только данные. Эти классы будут где-нибудь сериализованы с использованием XStream. Затем у ваших классов Swing есть методы для получения этих классов моделей и заполнения полей и редакторов. Затем вы можете расширить пользовательский интерфейс, например, без необходимости изменения класса, добавления дополнительной функциональности или предоставления различных представлений для одного и того же набора данных.
Чтобы сделать его более привлекательным, компонент Swing не должен хранить и загружать модель, но у вас должен быть интерфейс контроллера, который вы передаете компоненту Swing для выполнения этих операций. Таким образом, вы можете лучше выполнить модульное тестирование и отделить логику хранилища от логики представления.
Если XStream настроен правильно, и если вы внимательно относитесь к модели и полям, должна быть возможность добавить больше полей в классы вашей модели без нарушения обратной совместимости.
В любом случае я не рекомендую использовать сериализацию Java, так как не рекомендуется использовать ее для хранения. Сериализация Java выделяется при удаленном вызове метода. Это относительно хрупко, когда классы модели меняются ..