Dúvida - JMenu

Fala Galera, beleza? Montei um JMenu o seus respectivos JMenuItem, coloquei as ações para os JMenuItem tranquilo… Agora, para o JMenu Sair, não há a necessidade de se criar um JMenuItem com a descrição “Sair”, sendo assim, deixei apenas o JMenu… A dúvida eh, como definir uma ação para um JMenu??? Tentei usar o método addMenuListener(), mas não consegui… Alguém poderia me ajudar??? Valeu!!

Olá não entendi porque não conseguiu com o addMenuListener, segue abaixo uma implementação:

import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;


public class FPrincipal extends JFrame {
	private JMenuBar menubar;
	private JMenu menuSair;
	public FPrincipal() {
		this.menubar= new JMenuBar();
		this.menuSair=new JMenu("Sair");
		menubar.add(menuSair);
		Container container= this.getContentPane();
		container.add(menubar);
		menuSair.addMenuListener(new MenuListener() {

			public void menuCanceled(MenuEvent arg0) {
			}

			public void menuDeselected(MenuEvent arg0) {		
			}

			public void menuSelected(MenuEvent arg0) {
				if (JOptionPane.showConfirmDialog(null,"Deseja sair?","O sistema está perguntando",0)==0) {
					System.exit(0);
				}
			}
			
		});
		pack();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
}


public class Principal {
	public static void main(String[] args) {
		FPrincipal fp= new FPrincipal();
		fp.setVisible(true);

	}

}

Seria isto?
Att

Eh, eu tava fazendo coisa errada mesmo… valeu… Outra coisa, eu tinha montado todo o código para montagem do Swing na class Main, mas resolvi mudar para uma classe paralela… No entanto, quando tento compilar aparece o erro:

Não sei o que fazer… deve ser algo besta… Segue o código abaixo, desde já obrigado!!!

package estacionamento;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import veiculos.Caminhao;
import veiculos.Carro;
import veiculos.Moto;
import veiculos.Veiculo;

public class interfaceGrafica implements ActionListener{
	JLabel placaLabel = new JLabel("Placa: ");
	JTextField placaField = new JTextField(7);
	JLabel modeloLabel = new JLabel("Modelo: ");
	JTextField modeloField = new JTextField(20);
	JLabel rgLabel = new JLabel("RG: ");
	JTextField rgField = new JTextField(10);
	JButton incluirButton = new JButton("Incluir");
	JButton sairButton = new JButton("Sair");
	JButton consultarButton = new JButton ("Consultar");
	JButton baixarButton = new JButton ("Baixar");
	JRadioButton carroRadio = new JRadioButton ("Carro");
	JRadioButton motoRadio = new JRadioButton ("Moto");
	JRadioButton caminhaoRadio = new JRadioButton ("Caminhão");
	JPanel container = new JPanel();
	JFrame janela = new JFrame("Formulário");
	JMenuBar menuBar = new JMenuBar();
	JMenu lancamentoMenu = new JMenu("Lançamentos");
	JMenuItem entradaItem = new JMenuItem("Entrada");
	JMenuItem saidaItem = new JMenuItem("Saida");
	JMenu consultaMenu = new JMenu("Consulta");
	JMenuItem consultaItem = new JMenuItem("Veículos");
	JMenu sairMenu = new JMenu("Sair");
	JMenuItem sairItem = new JMenuItem();
	ButtonGroup radio = new ButtonGroup();
	
/*	radio.add(carroRadio);
*	radio.add(motoRadio);
*	radio.add(caminhaoRadio);
*/	menuBar.add(lancamentoMenu);
	menuBar.add(consultaMenu);
	lancamentoMenu.add(entradaItem);
	lancamentoMenu.add(saidaItem);
	consultaMenu.add(consultaItem);
	menuBar.add(sairMenu);

Olá pelo que vi você está trabalhando de maneira errada com Swing. Deu uma olhada neste modelo, para trabalhar com Swing:

  1. Cria uma classe que extends JFrame, se quiser Jframe, ou JDialog, se quiser modal, etc…
  2. Coloque os atributos dessa classe tudo que a janela vai ter, exemplos JMenu, JButton, JTextArea, etc;
  3. No construtor desta classes, instancie os atributos da classes, ex:
this.bt= new JButton("Teste");
  1. No construtor adquira uma referencia a Container, fazendo ele receber o retorno do metodo getContentPane, da classe JFrame, ex:
Container container= this.getContentPane();   
  1. Também no construtor, adicione os listeners necessários, aos devidos objetos, se for usar anonymous class, implemente o método definido pela interface, e neste método chame outro método, com um nome coerente, ex:

public interfaceGrafica() {
    	baixarButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				baixarButtonClick();
				
			}
    		
    	});
       }

   
    
    public void baixarButtonClick() {
    	//Codigo aqui    
  }
  1. Ainda no construtor sete as ações, default para a janela ex:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   

Agora respondendo suas dúvidas, na sua classe interfaceGrafica, faltou implementar o método definido na interface ActionListener.

public void actionPerformed(ActionEvent arg0) {
    //Codigo aqui

Neste pedaço do seu código:

 menuBar.add(lancamentoMenu);   
    menuBar.add(consultaMenu);   
    lancamentoMenu.add(entradaItem);   
    lancamentoMenu.add(saidaItem);   
    consultaMenu.add(consultaItem);   
    menuBar.add(sairMenu);  

Você está adicionando os objetos ao container’s sem estar dentro de nehum método, ou seja está tentando usar açãoes que só é permitido dentro de métodos, ou de construtores.

Acho que estes são erros! Qualquer dúvida posta ae!!

Valeu

Eh isso aih camarada, resolveu meu problema com elegância ^^ Obrigado!!