калькулятор Java подскажите где ошибка - Java

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

Здравствуйте. Извините за беспокойство. Пытался написать "калькулятор" и что бы фрэйм и слушатель были в отдельных классах, но что то ничего не происходит при проверке, то есть кнопка b1 на которую прилепил addActionListener(listener) не работает то есть добавил текстфилд который должен заполниться ответом но этого не происходит. сам листенер получен путём создания его экземпляра и проинициализирован в мэйн классе, и через метод сетЛистенер добавлен в фрэйм, и по аналогии так же проинициализированный фрэйм находится в классе листенер, то есть имеют экземпляры друг друга. да конечно калькулятор состоит из одной кнопки и ответом должно быть введённое увеличенное число на единицу. и то что написано наверняка по нубски, на это можете не обращать внимания. главное подскажите где ошибка. при написании аналогичного с классом фрэйм и вложенным в него листенера все работает норма. **Основной класс:**
import javax.swing.*;
    public class MainCalc {
    public static void main(String[] args){
        Listener listener = new Listener();
        Frame frame = new Frame("windows self 1/33.3");
        frame.setListener(listener);
        listener.setFrame(frame);
        listener.getFrame().setVisible(true);
        listener.getFrame().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        listener.getFrame().setSize(200, 200);
        listener.getFrame().setResizable(false);
        listener.getFrame().setLocationRelativeTo(null);
 
        }
    }
**Листенер:**
import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JOptionPane;
 
    public class Listener implements ActionListener{
    private Frame fr = null;
    public void actionPerformed(ActionEvent e){
         try {
             if(e.getSource() == fr.b1){
                 int i = Integer.parseInt(fr.tm.getText());
                 i++;
                 String a = ""+i;
                 fr.lm.setText(a);
             }
         } catch (Exception e1) {
             JOptionPane.showMessageDialog(null, "Enter NUMBER");
         }
     }
     public Frame getFrame(){
         return fr;
     }
     public void setFrame(Frame fr) {
         this.fr = fr;
     }
    }
**Класс фрэйм:**
import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Frame extends JFrame{
    JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bm, bp, bdot, beq, bmul, bdiv;
    JTextField tm, tme1, tme2;
    JLabel lm;
    private Listener listener = null;
    public void setListener(Listener listener){
        this.listener = listener;
    }
    public Listener getListener(){
        return listener;
    }
    public Frame(String s){
        super(s);
        setLayout(new FlowLayout());
        b1 = new JButton("unit");
        tm = new JTextField(10);
        lm = new JLabel("text here");
        add(b1); add(tm); add(lm);
        b1.addActionListener(listener);
        }
    }

Код к задаче: «калькулятор Java подскажите где ошибка - Java»

textual
Listener listener = new Listener();

11   голосов, оценка 4.273 из 5


СОХРАНИТЬ ССЫЛКУ