Очистить формы GUI при создании через Spring как синглтон - PullRequest
0 голосов
/ 22 марта 2012

В настольном приложении, созданном с использованием Java и Spring, формы графического интерфейса пользователя создаются в виде одноэлементных компонентов, поэтому при отображении формы все предварительно введенные значения присутствуют. Есть ли лучший способ получить новую форму, чем очистка каждого поля формы с помощью кода Java? Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

Вы можете принудительно создать новый синглтон, как это

public class MyForm {
    // The instance
    private static MyForm instance = new MyForm();
    // Private constructor prevents instantiation from other classes
    private MyForm() { }
    // Get the singleton
    public static MyForm getInstance() { return instance; }

    // Force a new instance to be created         
    public static void resetInstance() {
           instance = new MyForm();
    }
}

Но это уже не одноразовое поведение, и, возможно, вам следует просто использовать новый экземплярный класс. Что-то вроде:

myPanel.removeAll();
myPanel.add(new MyForm());

(конструктор должен стать общедоступным)

1 голос
/ 28 марта 2012

Я бы предложил более простую альтернативу, пожалуйста, используйте singleton = false.Если вы хотите сохранить некоторые из фрагментов инициализации, используйте метод init или постпроцессор бина.

0 голосов
/ 05 апреля 2012

Я переопределил метод dispose и вызвал метод init после super.dispose(), в методе init добавили следующую строку в начале: getContentPane().removeAll();.Это хорошо подходит для моих требований: когда я хочу, чтобы данные оставались в форме, я просто скрываю форму, а когда я хочу новую форму, я удаляю форму и снова показываю форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...