Chamar telas atraves dos menus

3 respostas
S

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);

}

<a class="mention" href="/u/override">@Override</a>

public void actionPerformed(ActionEvent menu) {

if(menu.getSource()==cadt_senha){

Login tela;

tela = new Login();

tela.setVisible(true);

dispose();

}

}

}

3 Respostas

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.

S

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.

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…

S

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);
Criado 4 de dezembro de 2012
Ultima resposta 4 de dez. de 2012
Respostas 3
Participantes 2