0

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);
}
}
Francisunoxx
  • 1,440
  • 3
  • 22
  • 45

1 Answers1

0

I can't see any problem with the code you posted. Probably your issue is somewhere in the code your didn't include here (I would bet in something messing up references, as you didn't include the codification in which the button is added into the screen.).

f.leno
  • 151
  • 1
  • 7