Classe JMenuBar - dispose() não funciona

Bom dia galera, estou tentando criar uma classe JMenuBar e nela ter todo o menu do meu sistema, afim de facilitar manutenções e não precisar ficar mexendo em todas as telas quando precisar alterar algum menu. Só que, quando eu coloco todo o menu direto na classe VIEW, em qualquer uma delas, o dispose() funciona normal, sem problema algum, porém quando eu crio uma classe específica para o menu ele não funciona, tipo, eu estou com uma tela aberta e quero abrir outra, usando o itemMenu, eu queria que o dispose() fechasse a primeira tela mas ele não fecha. Alguém poderia me ajudar?

Por exemplo, aqui seria a classe onde está todo o menu e é nesta parte que iria abrir a tela Carro e deveria fechar a tela atual, independente de qual tela esteja aberta.

private JMenuItem getMntmTelaDeCarro() {
		if (mntmTelaDeCarro == null) {
			mntmTelaDeCarro = new JMenuItem("Tela de Carro");
			mntmTelaDeCarro.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					CarroController.getInstance().abrirTela();
					dispose();
				}
			});
		}
		return mntmTelaDeCarro;
	}

e aqui é onde abre a outra tela e onde chamo o menu, da classe anterior:

private void initialize() {
		Menu menu = new Menu();
		this.setJMenuBar(menu.getMenuBarra());
		this.setContentPane(getJContentPane());
		this.setTitle("Carro");
		this.setBounds(new Rectangle(470, 100, 590, 450));
	}