Olá pessoal, estou com uma duvida aqui na hora de controlar os Eventos de um JMenuItem. Estou colocando o codigo em camadas, adicionei um evento ao meu JMenuItem miSair. Coloquei para ele fechar a aplicação, porem nao ta dando certo, é como se ele nao reconhecesse o meu evento.
Codigo da Janela:
package visual;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import static ferramentas.Utilitarios.*;
public class TelaPrincipal extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
JMenuBar menuBar1;
public JMenu menuControle;
JMenu menuRelatorios, menuUtilitarios;
public JMenu menuAjuda;
public JMenuItem miEntrada;
public JMenuItem miCadRevendedor, miCalculadora, miTema, miSaida;
public JMenuItem miSair;
public TelaPrincipal()
{
nimbo();
setTitle("Sistema Integrado de Estoque - SIET");
setBounds(200,100,800,600);
setResizable(false);
getContentPane().setBackground(Color.white);
getContentPane().setLayout(null);
menuBar1 = new JMenuBar();
menuControle = new JMenu("Controle");
menuRelatorios = new JMenu("Relatorios");
menuUtilitarios = new JMenu("Utilitarios");
menuAjuda = new JMenu("Sair");
miEntrada = new JMenuItem("Entrada de Produtos");
miSaida = new JMenuItem("Saida de Produtos");
miCadRevendedor = new JMenuItem("Cadastro de Revendedores");
miCalculadora = new JMenuItem("Calculadora");
miTema = new JMenuItem("Temas");
miSair = new JMenuItem("Sair");
menuControle.add(miEntrada);
menuControle.add(miSaida);
menuControle.add(miCadRevendedor);
menuControle.add(miSair);
menuUtilitarios.add(miCalculadora);
menuUtilitarios.add(miTema);
menuBar1.add(menuControle);
menuBar1.add(menuRelatorios);
menuBar1.add(menuUtilitarios);
menuBar1.add(menuAjuda);
setJMenuBar(menuBar1);
setVisible(true);
}
public void addEventoTelaPrincipal(ActionListener pts)
{
this.miSair.addActionListener(pts);
}
}
Codigo do controle de Eventos que esta em outra classe e em outro pacote.
package controle;
import java.awt.event.*;
import visual.TelaPrincipal;
import static javax.swing.JOptionPane.*;
public class ControlTelaPrincipal
{
private TelaPrincipal telaPrincipal;
public ControlTelaPrincipal()
{
telaPrincipal = new TelaPrincipal();
telaPrincipal.addEventoTelaPrincipal(new controlEventoTelaPrincipal());
}
class controlEventoTelaPrincipal implements ActionListener
{
public void actionPerformed(ActionEvent etc)
{
if (etc.getSource()== telaPrincipal.miSair)
{
System.exit(0);
}
}
}
}
Se alguem puder me ajudar a achar o erro, eu agradeço.