Chamar telas atraves dos menus

Olá pessoal, estou com uma duvida “basica” mas que não consigo resolver…

Tenho uma Classe Menu, que contem todos os menus do meu sistema, nela tenho Cadastro, Despesas, receitas e por ai vai e em cada um dos menus existe um sub menu…

O problema que ocorre é, quando clico no sub menu ele não chama a nova tela, por exemplo, clico em Cadastro e depois em Trocar senha, ele deveria abrir a tela de trocar senha, mas não acontece nada…

Segue abaixo os codigos…

Classe Menus

import java.awt.Dimension;

import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Menus extends Janela implements ActionListener {

JMenuBar barra; // variável da barra
JMenu cadastro, despesas, receitas, saldo, sair ; // variável dos menus
JMenuItem adicionar, consultar, relatorio, cadt_usr, cadt_senha, add_rec, cons_rec; // variável dos itens dentro dos menus
Menus(){
super (“Genkus for Java”, new Dimension(400,300));
barra = new JMenuBar();
cadastro = new JMenu(“Cadastro”);
despesas = new JMenu(“Despesas”) ;
receitas = new JMenu(“Receitas”) ;
saldo = new JMenu(“Saldo”) ;
sair = new JMenu(“Sair”) ;
adicionar = new JMenuItem(“Adicionar”) ;
consultar = new JMenuItem(“Consultar”) ;
relatorio = new JMenuItem(“Relatório”);
cadt_usr = new JMenuItem(“Novo Usuário”);
cadt_senha = new JMenuItem(“Trocar Senha”);
add_rec = new JMenuItem(“Adicionar”);
cons_rec = new JMenuItem(“Consultar”);
cadastro.add(cadt_usr);
cadastro.add(cadt_senha);
despesas.add(adicionar);
despesas.add(consultar);
receitas.add(add_rec);
receitas.add(cons_rec);
saldo.add(relatorio);
barra.add(cadastro);
barra.add(despesas);
barra.add(receitas);
barra.add(saldo);
barra.add(sair);
setJMenuBar(barra);
}
public static void main(String[] args) {
Menus jan= new Menus();
jan.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent menu) {
if(menu.getSource()==cadt_senha){
Login tela;
tela = new Login();
tela.setVisible(true);
dispose();
}
}

}

Adicione o comando “this.addActionListener(this);” no seu construtor, assim por exemplo:

barra.add(sair); setJMenuBar(barra); this.addActionListener(this); // linha adicionada }
Dica: use a tag code para postar códigos. Fica bem mais legível.

Abraço.

[quote=TerraSkilll]Adicione o comando “this.addActionListener(this);” no seu construtor, assim por exemplo:

barra.add(sair); setJMenuBar(barra); this.addActionListener(this); // linha adicionada }
Dica: use a tag code para postar códigos. Fica bem mais legível.

Abraço.[/quote]

Adicionei esta linha e da um erro…

import java.awt.Dimension;

import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import java.util.EventObject;



public class Menus extends Janela implements ActionListener {

JMenuBar    barra;                       // variável da barra
JMenu       cadastro, despesas, receitas, saldo, sair ;       // variável dos menus
JMenuItem   adicionar, consultar, relatorio, cadt_usr, cadt_senha, add_rec, cons_rec;   // variável dos itens dentro dos menus
Menus(){
super ("Genkus for Java", new Dimension(400,300));
barra = new JMenuBar();
cadastro	= new JMenu("Cadastro");
despesas	= new JMenu("Despesas") ;
receitas	= new JMenu("Receitas") ;
saldo	= new JMenu("Saldo") ;
sair	= new JMenu("Sair") ;
sair.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
adicionar   = new JMenuItem("Adicionar") ;
consultar   = new JMenuItem("Consultar") ;
relatorio	= new JMenuItem("Relatório");
cadt_usr	= new JMenuItem("Novo Usuário");
cadt_senha	= new JMenuItem("Trocar Senha");
add_rec	= new JMenuItem("Adicionar");
cons_rec	= new JMenuItem("Consultar");
cadastro.add(cadt_usr);
cadastro.add(cadt_senha);
despesas.add(adicionar);
despesas.add(consultar);
receitas.add(add_rec);
receitas.add(cons_rec);
saldo.add(relatorio);
barra.add(cadastro);
barra.add(despesas);
barra.add(receitas);
barra.add(saldo);
barra.add(sair);
this.addActionListener(this);
setJMenuBar(barra);
}	
public static void main(String[] args) {
Menus jan= new Menus();
jan.setVisible(true);

}


@Override
public void actionPerformed(ActionEvent menu) {
if(menu.getSource()==cadt_senha){
Login tela;
tela = new Login();
tela.setVisible(true);
dispose();
}
}

}

Não consigo nem inserir a função do botao sair…

Nao sei se estou colocando a função no local errado ou eh um erro de logica…

Descobri a origem do erro…

Faltou add os

adicionar.addActionListener(this);
consultar.addActionListener(this);
relatorio.addActionListener(this);
cadt_usr.addActionListener(this);
cadt_senha.addActionListener(this);
add_rec.addActionListener(this);
cons_rec.addActionListener(this);