Tratadores de eventos

2 respostas
W

Pessoal, o meu programa consta de duas classes a principal e uma secundaria( na qual implementei uma classe cuja finalidade é a exibição de um frame com menus). A ideia é simples a principal deverá chamar a secundaria. O frame tem um Menu com itens de menu. ao clicar no "MenuItemSistemaLogin" que é um item de menu devera ser exibida uma mensagem. Se alguem puder ajudar a entender o porque do não funcionamento deste trecho e respectivamente a corrigir o problema eu agradeceria.Abaixo eu postei os dois codigos.

primeira classe
public class PrimeiroFrame{
    
    /** Creates a new instance of PrimeiroFrame */
     
        
        private static void createAndShowGUI(){
           LayoutSistema t = new LayoutSistema(); 
           t.ExibirFrame();
        }
        
        public static void main (String args []){
            javax.swing.SwingUtilities.invokeLater(new Runnable(){
                public void run () {
                  createAndShowGUI();
                
                }
                        
            });
          }
                    
}
Segunda classe
import java.awt.event.ActionListener;
import java.security.KeyStore;
import javax.swing.*;  
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;          
/**
 *
 * @author warlles
 */
public class LayoutSistema  implements ActionListener{
   
    // Variaveis de Instancias
        private JFrame frame; 
        private JMenuBar BarraMenu ;
        private JPanel panel;
        private JMenu MenuSistema,MenuUsuario,SubMenuSistema,SubMenuUsuario;
        public JMenuItem MenuItemSistemaLogin,MenuItemSistemaConfigurarPagina,
                     MenuItemSistemaImprimir, MenuItemSistemaSair;
    
    
    /** Creates a new instance of LayoutSistema */
       public LayoutSistema() {
           BarraMenu =  new JMenuBar();
           panel = new JPanel();
          
              
      }
    
    public void ExibirFrame() {
        
            CriarFrame();
            CriarMenu();
            CriarItensMenu();
            FinalizarExibicao();
            
           
    }
    

       public void CriarFrame(){
          frame = new JFrame("Sistema de Controle");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setLocation(100,100);
          frame.setJMenuBar(BarraMenu);
          
         
       
       } 
       public void CriarMenu(){
       
            MenuSistema = new JMenu("Sistema");
            MenuSistema.setMnemonic('S');
          
       
       }
       
       public void CriarItensMenu(){
//            TratadorEventos Eventos =  new TratadorEventos();
           
            MenuItemSistemaLogin = new JMenuItem("Login");
            MenuSistema.add(MenuItemSistemaLogin);
            MenuItemSistemaLogin.setMnemonic('l');
            MenuItemSistemaLogin.addActionListener(this);
           
            MenuSistema.addSeparator();
            
            MenuItemSistemaConfigurarPagina = new JMenuItem("Configurar Pagina");
            MenuSistema.add(MenuItemSistemaConfigurarPagina);
            MenuItemSistemaConfigurarPagina.setMnemonic('c');
            MenuSistema.addSeparator();
            
            MenuItemSistemaImprimir = new JMenuItem("Imprimir");
            MenuSistema.add(MenuItemSistemaImprimir);
            MenuItemSistemaConfigurarPagina.setMnemonic('i');
            MenuSistema.addSeparator();
            
            MenuItemSistemaSair = new JMenuItem("Sair");
            MenuItemSistemaConfigurarPagina.setMnemonic('s');
            MenuSistema.add(MenuItemSistemaSair);
           
       } 
   
       
       public void FinalizarExibicao(){
            BarraMenu.add(MenuSistema); 
            panel.setPreferredSize(new Dimension(600,300));
            frame.getContentPane().add(panel,BorderLayout.CENTER);
            frame.pack();
            frame.setVisible(true);  
           
       }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == MenuItemSistemaLogin){
                 JOptionPane.showMessageDialog(null,null,"Ocorreu um Evento", 
                        JOptionPane.INFORMATION_MESSAGE);
              }  
              else{
                  JOptionPane.showMessageDialog(null,null,"Não deu certo", 
                        JOptionPane.INFORMATION_MESSAGE);
                  
              }
    }
   
}
Obrigado pela atenção. :sad:

2 Respostas

O

amigo rodei seu código aqui e não apresentou nenhum problema, quando eu rodo ele abre o frame normalmente, quando clico em login diz que ocorreu um evento …
você poderia especificar melhor qual seria o problema?

W

omigo omegatiger, as duas classes devem estar em arquivos separados. Colocando as duas juntas o programa funciona, mas separando não funciona.Por que?

Criado 8 de outubro de 2006
Ultima resposta 10 de out. de 2006
Respostas 2
Participantes 2