Ajuda ao usar o JMenuBar

6 respostas
DANIEL35
Olá amigos, estou usando o JMenuBar e preciso utilizar as opções que os menus apresentam ex: cadastrar aluno, cadastrar funcionários, cadastrara visitantes.... Como faço para a partir daí como fazer o menu funcionar chamando os formulários de cadastros. Os formulários eu já tenho feitos, só preciso saber como chamá-los ao clicar no botão. Alguém poderia ajudar, por favor? Obrigado. Vejam o código:
import javax.swing.*;
import java.awt.*;
import java.awt.Color;

public class FramePrincipal extends JFrame{
	private JLabel l1, l2;
	private JMenuBar me;
 
public FramePrincipal(){
	setTitle("ACADEMIA FORÇA ATIVA");
	
    JMenu menu1 = new JMenu("CADASTROS");
        menu1.add(new JMenuItem("alunos"));
        menu1.add(new JMenuItem("funcionários"));
        menu1.add(new JMenuItem("visitantes"));
        menu1.add(new JSeparator());
        menu1.add(new JMenuItem("ACADEMIA"));

      	JMenu menu2 = new JMenu("CONSULTAS");
      	menu2.add(new JMenuItem("alunos cadastrados"));
        menu2.add(new JMenuItem("funcionários cadastrados"));
        menu2.add(new JMenuItem("mensalidades atrasadas"));
     	menu2.add(new JSeparator());
      	menu2.add(new JMenuItem("ACADEMIA"));
      
        JMenu menu3 = new JMenu("RELATÓRIOS");
        menu3.add(new JMenuItem("alunos da academia"));
        menu3.add(new JMenuItem("funionáriosa da academia"));
        menu3.add(new JMenuItem("mensalidades pagas"));
        menu3.add(new JMenuItem("mensalidades atrasadas"));
        menu3.add(new JSeparator());
        menu3.add(new JMenuItem("ACADEMIA"));
      
     	JMenu menu4 = new JMenu("MODALIDADES");
        menu4.add(new JMenuItem("musculação "));
        menu4.add(new JMenuItem("ginástica"));
        menu4.add(new JMenuItem("piscina"));
        menu4.add(new JMenuItem("yoga"));
        menu4.add(new JMenuItem("danças"));
        menu4.add(new JMenuItem("lutas"));
        menu4.add(new JMenuItem("pilates"));
        menu4.add(new JSeparator());
        menu4.add(new JMenuItem("ACADEMIA")); 
        
        JMenu menu5 = new JMenu("SERVIÇOS");
        menu5.add(new JMenuItem("Nutricionistas"));
        menu5.add(new JMenuItem("Personal VIP"));
        menu5.add(new JMenuItem("Força Ativa & você"));
        menu5.add(new JSeparator());
        menu5.add(new JMenuItem("ACADEMIA")); 
        
        JMenu menu6 = new JMenu("SAIR DO SISTEMA");     

      	JMenuBar bar = new JMenuBar();
      	bar.add(menu1);
      	bar.add(menu2);
     	bar.add(menu3);
     	bar.add(menu4);
      	bar.add(menu5);
      	bar.add(menu6);        
	
		JFrame jan = new JFrame();
     	jan.setJMenuBar(bar);
	
    	getContentPane().setBackground(Color.CYAN);
	    getContentPane().setLayout(new GridLayout(9,0));
    	getContentPane().add(bar);
	
		Icon bug = new ImageIcon("travelbug.gif");   
        l1 = new JLabel ("ACADEMIA FORÇA ATIVA",bug,SwingConstants.CENTER);
        l1.setForeground(Color.red);
    	add(l1);
	
    	setVisible(true);
	    setSize(580, 500);
    	setLocation(400, 200);	
	}
}

6 Respostas

WendersonLP

A maneira que pega-se o evento de um JButton é a mesma de um JMenuItem.

blackfalcon

E depois que fizer isso, basta exibir o Frame, ou caso seja um InternalFrame, use o add do DesktopPane.

Abraços

DANIEL35

Certo, mas não teria como deixar um exemplo. Sou novo em Java, e muitas coisas não consigo entender tão facilmente.

discorpio

Boa noite a todos.

Para fazer o Menu disparar eventos, voce precisa implementar uma interface chamada “ActionListener” isto na declaração de classe, assim:

.....
   public class FramePrincipal extends JFrame implements ActionListener {
      ....
      ....
   }

Se voce estiver utilizando o NetBeans ou Eclipse, ele deve colocar um ícone de lâmpada amarela ao lado da linha de declaração da classe, click neste ícone com o botão direito do mouse e mande implementar todos os métodos abstratos, ele vai escrever o método ActionPerformed assim:

....
    public void actionPerformed(ActionEvent e) {
    
    }
    ....

Só que para implementar este método, necessário seria voce criar as instâncias de MenuItem também, assim:

....
    .... 
    JMenu menu1 = new JMenu("CADASTROS");
        JMenuItem mnualunos =  new JMenuItem("alunos"); 
        mnualunos.addActionListener(this);  // Adiciona o evento ao menu    
        menu1.add(mnualunos);

        JMenuItem mnufuncionarios = new JMenuItem("funcionários"));          
        mnufuncionarios.addActionListener(this) // Aciona o evento ao menu
        menu1.add(mnufuncionarios);
        .....
        .....
        JMenuBar bar = new JMenuBar();   
        bar.add(menu1);   
        .....

Agora podemos implementar o método ActionPerformed desta maneira:

public void actionPerformed(ActionEvent e) {
        if (e.getSource()==mnualunos){
             // instancia o JInternaFrame Alunos
             // acrescente Alunos no JDesktopPane
        } else if (e.getSource()==mnufuncionarios){
            // instancia o JInternaFrame Funcionarios
             // acrescente Funcionarios no JDesktopPane
        } 
    }
blackfalcon

Bem amigo, eu sou novo tambem em Java, mas utilizo IDE ao inves de voce que programa tudo na unha, pelo que estou vendo em varios topicos seus. Mas é melhor aprender na unha mesmo, porque fica mais facil para quando voce pegar na ide, voce ja tem uma base bem fixa!

Entao fica meio dificil as vezes te ajudar com exemplos, pois eu teria que faze-lo inteiro aqui para ver se realmente ira funcionar, entende.

Abraços

DANIEL35

Certo, beleza. Vou tentar fazer aqui e depois posto o resultado. Acredito que vai dar certo. Valeu.

Criado 14 de maio de 2010
Ultima resposta 14 de mai. de 2010
Respostas 6
Participantes 4