Следуя рекомендациям jpm, чтобы избежать этого, вы можете сделать
private MPUChecker mC = new MPUChecker();
в MPUComp.Таким образом, вы создаете экземпляр mpuchecker только один раз.Затем оба ActionListeners могли бы использовать этот MPUChecker.
Если вы хотите, чтобы каждый ActionListener имел свой собственный MPUChecker, вы могли бы переместить создание их слушателей в тело этих внутренних классов, например,
class MenuActionListener3 implements ActionListener {
MPUChecker menu3mC = new mpuChecker();
public void actionPerformed(ActionEvent e)
{
menu3mC.CheckMpu(path, textField.getText(),1);
setVisible(false);
}
}
С другой стороны, сам MPUChecker может ссылаться на неправильный MPUComp, так как вы создаете его для MPUChecker при инициализации этого объекта.Если это не так, вы можете удалить
private MPUComp mC = new MPUComp();
из MPUChecker, сделать CheckMPU статическим и дать ему дополнительный параметр: MPUComp, который он должен проверять.