Проблема заключается в том, как вы создали экземпляр своего Frame (CashMachine
), а не (напрямую) с его реализацией.
Вы вызываете buildGUI
дважды, один в конструкторе объекта, а затем в классе Driver
, который создает экземпляр объекта. В результате вы создаете (и раскладываете) два набора кнопок.
Когда кнопки первого набора в конечном итоге были отключены, ваша активность мышки выявляла второй набор кнопок. А недостаток в вашей реализации ActionListener может привести к тому, что inputCount
примет значения, превышающие 6, поэтому кнопки во втором наборе в конечном итоге не были отключены, как кнопки из первого набора.
buildGUI
должен быть приватным; он должен вызываться в конструкторе CashMachine, а не в классе Driver
.
И наоборот, на мой взгляд, CashMachine.setVisible
должен вызываться классом Driver
, а не конструктором CashMachine
.