meaning of "this" keyword in statements addActionListener(this)?
Basically, this keyword is used to refer the current instance of the method on which it is used. In the specified statement, object b1 is making a method call addActionListener in which the argument passed is the method invoking object it self which is represent by "this" ie "this" refers to the b1.
In other words, "this" represents the action listener is defined in the same class itself not outside the class. It means your class has implemented the interface ActionListener, therefore this statement is needed.