"Переключение" окон - Java

Узнай цену своей работы

Формулировка задачи:

В общем проблема следующая: есть класс - окно программы калькулятора с использованием SWING. В этом же калькуляторе есть кнопка, которая отвечает за переход в так сказать "расширенный" режим инженерного калькулятора. Задача: чтобы при переключении например с простого на инженерный - окно простого пропадало, а инженерного появлялось Проблема : nullPointerException. Один раз с простого на инжереный( или наоборот) перейти можно, а на следующий раз - эксепшн. Обьекты классов создал в телах классов следующим образом:
private static frameCalc fc;
private static ingCalc ig;
Код метода main простого калькулятора:
    public static void main(String args[]){
 
                fc = new frameCalc();
                ig = new ingCalc();
                
                fc.setVisible(true);
                ig.setVisible(false);

    }
Код кнопки перехода простого калькулятора в инженерный:
calc2.addActionListener(new ActionListener(){
 
            @Override
            public void actionPerformed(ActionEvent e) {
                fc.setVisible(false);
                ig.setVisible(true);
 
            }
            
        });
Я думаю, что проблема в том, что у меня уничтожается обьект, с которого мы переходим, и потом доступ к нему является невозможным. Крутил уже как мог. Прошу помощи, знатоки

Решение задачи: «"Переключение" окон»

textual
Листинг программы
frameCalc fc;
 
public ingCalc(frameCalc fc){
this.fc = fc;
}
 
calc1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                setVisible(false);
                fc.setVisible(true);
            }
        });

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы