I wanted to check if ActionListener under my InternalFrame if it's working. But the inner class that implementing ActionListener won't read the button that registered. Any reasons why?
EmployeeFrameView
public class EmployeeFrameView extends JInternalFrame
{
JButton button;
public EmployeeFrameView()
{
super("AddEmployee",true,true,true,true);
addComponentsToPane(getContentPane());
pack();
setVisible(true);
setLocation(xOffset,yOffset);
}
private void addComponentsToPane(final Container pane)
{
final JPanel content = new JPanel();
panelEmployee = new JPanel();
//Add to content and set layout
content.setLayout(new BorderLayout());
content.add(addComponentsToEmployeePanel(panelEmployee),BorderLayout.NORTH);
//Adding ScrollPane to Container.
final JScrollPane scrollPane = new JScrollPane(content, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
pane.add(scrollPane);
}
private JPanel addComponentsToEmployeePanel(JPanel panelEmployee)
{
panelEmployee.setLayout(grid);
gbc.gridx = 0;
gbc.gridy = 1;
button = new JButton("Button");
panelEmployee.add(button, gbc);
}
public void addAction(ActionListener l )
{
button.addActionListener(l);
}
}
EmployeeFrameController
public class EmployeeFrameController
{
EmployeeFrameView theView;
public EmployeeFrameController(EmployeeFrameView theView)
{
this.theView = theView;
this.theView.addAction(new addAction());
}
class addAction implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("Working");
}
}
}
Main
public class Main
{
public static void main(String[] args)
{
EmployeeFrameView employeeFrameView = new EmployeeFrameView();
EmployeeFrameController employeeFrameController = new EmployeeFrameController(employeeFrameView);
}
}