Проблема здесь в том, что мы используем статический модификатор для bt1. Используя ключевое слово static, мы создаем новую кнопку при первом вызове конструктора frame
. При каждом последующем вызове конструктора frame
создается новая кнопка , а не . Скорее ключевое слово static вызывает создание кнопки только один раз при первом вызове.
Каждый раз, когда вы создаете новый JFrame, он фактически использует одинаковую кнопку для каждого из JFrame. Это, в свою очередь, может вызвать поведение, которое вы видите.
Когда вы создаете свой первый кадр, к нему прикрепляется bt1. При нажатии кнопки «Далее» будет создан второй кадр с прикрепленным к нему таким же bt1. Что еще более важно, когда вы вызвали этот конструктор, вы создали новый ActionListener и прикрепили его к той же кнопке . Поэтому каждый раз, когда вы вызываете этот конструктор, вы будете добавлять другого слушателя к тому же объекту кнопки, который используется во всех кадрах.
Корень проблемы в том, что с каждым конструктороммы добавляем новый ActionListener к той же кнопке.
Я полагаю, что вы можете решить эту проблему одним из двух способов.
- Сделать bt1 нестатичным, чтобы у каждого объекта кадра была своя уникальная кнопка
- Makeваш actionListener в конструкторе фреймов статический. В этом случае все кадры будут использовать одну и ту же кнопку. И все кнопки будут использовать один и тот же (и единственный) actionListener.