Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12141

How to make an instance of an interface inside a constructor?

$
0
0

I'm coding GUI for my Java project. Here are some info:

  1. I have an interface EmployeeController.
public interface EmployeeController {    void addEmployee(Employee employee);    Employee getEmployeeById(int employeeId);    void updateEmployee(Employee employee);    void deleteEmployee(int employeeId);    List<Employee> getAllEmployees();}
  1. I have EmployeeControllerImpl implements EmployeeController, the methods are coded here.
  2. Then I code my JFrame AddEmploye where I want to add employee details into text fields and a button to save them.
public class AddEmployee extends javax.swing.JFrame {    private EmployeeController employeeController;    // Constructor to accept Controller    public AddEmployee(EmployeeController employeeController) {        this.employeeController = employeeController;        initComponents();        addActionListeners();    }    // Method to add action listeners to components    private void addActionListeners() {        saveButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent evt) {                System.out.println("Save button clicked");                saveButtonActionPerformed(evt);            }        });    }    // Button method    private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   Employee employee = new Employee();        employee.setName(nameText.getText());        employee.setAddress(addressText.getText());        employee.setPhoneNumber(phoneNumberText.getText());        try {            employee.setAge(Integer.parseInt(ageText.getText()));            employee.setSalary(Double.parseDouble(salaryText.getText()));        } catch (NumberFormatException e) {            JOptionPane.showMessageDialog(this, "Invalid input format.");            return;        }        employee.setGender(genderText.getText());        employee.setPosition(positionText.getText());        employeeController.addEmployee(employee);        JOptionPane.showMessageDialog(this, "Employee added successfully!");    }    public static void main(String args[]) {         // Pre-generated code ...         /* Create and display the form */         public void run(){              AddEmployee addEmployee = new AddEmployee();              new AddEmployee().setVisible(true);         }    }    // Rest of the pre-generated code by Swing}

So when I run the frame and click on Save button. The program seemingly stopped at constructor with:Cannot invoke "EmployeeController.addEmployee(Employee)" because "this.employeeController" is null.

I have been looking into this problem for a while but still clueless.


Viewing all articles
Browse latest Browse all 12141

Trending Articles