Duvidas sobre Jmenubar

3 respostas
jrpmoraes

Bem pessoal

sou novato em interface grafica

tenho um codigo assim

porem quero add eventos sobre os itens do menu e nao estou achando uma maneira
alguem pode -me ajudar fico grato

segue a baixo o codigo

public class principal extends JPanel  {
    /**
	 *
	 */
	private static final long serialVersionUID = 1L;
	private JLabel centro;
    private JLabel barraStatus;
    private JMenuBar barraMenu;
    private JLabel jcomp4;
    private JMenu agendaMenu = new JMenu ("Agenda");
    private JMenuItem atividadesItem = new JMenuItem ("Atividades");
    private JMenuItem contatoItem = new JMenuItem ("Contato");
    private JMenuItem pessoalItem = new JMenuItem ("Pessoal");
    private JMenuItem lembretesItem = new JMenuItem ("Lembretes");
    private JMenuItem sairItem = new JMenuItem ("Sair");
    private JMenu ajudaMenu = new JMenu ("Ajuda");
    private JMenuItem sobreItem = new JMenuItem ("Sobre");


    

        
    public principal() {
        //Montando o menu             
        agendaMenu.add (atividadesItem);
        agendaMenu.add (contatoItem);
        agendaMenu.add (pessoalItem);
        agendaMenu.add (lembretesItem);
        agendaMenu.add (sairItem);
        ajudaMenu.add (sobreItem);
        // sobreItem.addActionListener(this);
        
        //construct components
        centro = new JLabel ("");
        barraStatus = new JLabel ("Status");
        barraMenu = new JMenuBar();
        barraMenu.add (agendaMenu);
        barraMenu.add (ajudaMenu);
        jcomp4 = new JLabel ("                         ");
        //adjust size and set layout
        setPreferredSize (new Dimension (496, 375));
        BorderLayout layout = new BorderLayout(0, 0);
        setLayout (layout);

        //add components
        add (centro, BorderLayout.CENTER);
        add (barraStatus, BorderLayout.SOUTH);
        add (barraMenu, BorderLayout.NORTH);
        add (jcomp4, BorderLayout.WEST);

3 Respostas

renzonuccitelli

Basta vc implementar a interface ActionListener a adicionar ao item que desejar, atravéso do métdo seuItem.addActionListener(New SeuListener)

jrpmoraes

Olho o erro que aparece

O método addActionListener (ActionListener) no tipo AbstractButton não é aplicável para os argumentos (principal)
o codigo eu fiz assim

renzonuccitelli

Esse this ta na classe que vc postou? Se sim, está errado, pq vc estaria tentando passar uma instancia de um JPanel que não implementa o Action Listener. É mais ou menos o que coloco abaixo, só não garanto pq fiz de cabeça, não to com uma IDE agora:

seuItem.addActionListener(New ActionListener(){

 public void actionPerformed(ActionEvent e){
//aqui vc coloca ação que desejar...
}
);

Se vc kiser, pode criar a classe que implementa a acao em separado, pra nao poluir muito o código do seu painal, já que, em geral, vc vai ter uma ação diferente para cada menu.

Criado 24 de novembro de 2008
Ultima resposta 24 de nov. de 2008
Respostas 3
Participantes 2