Problema con un JMenuItem, no escucha evento de mouse (ya Solucionado)

Iniciado por DarkSorcerer, 21 Julio 2013, 06:28 AM

0 Miembros y 1 Visitante están viendo este tema.

DarkSorcerer

ACTUALIZACION: Ya encontre la solucion, implemente ActionListener

De todas maneras, dejo el codigo de mi error anterior, si alguien me dice si es posible tambien hacerlo por mouse, se los agradeceria.

Mi problema (que ya fue solucinado :D)


Estoy creando un programa que se trata de imitar al Paint, el programa es simple, consta de un Lienzo heredado de JPanel y una Ventana que contiene las herramientas, quize ponerle JMenu dentro de un JMenuBar que los contiene, y cada menu tiene diferentes tipos de JMenuItem, pero el problema es que no me escucha el llamado de mouseClicked, pero curiosamente, si me obedece otros, por ejemplo, le puse una barra inferior que muestra las coordenadas del puntero en el panel y si me hace caso .

Les dejo el codigo de la clase Ventana, ojala puedan ayudarme.

Código (java) [Seleccionar]
package programa1;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.awt.BorderLayout;

public class Ventana extends JFrame {
   
   private JMenuBar barraSuperior;
   private JPanel panelInferior;
   private JLabel barraInferior;
   
   private JMenu archivo;
   private JMenu editar;
   private JMenu colores;
   private JMenu formas;
   private JMenu achurado;
   private JMenu ayuda;
   
   private JMenuItem nuevo;
   private JMenuItem salir;
   
   private JMenuItem deshacer;
   private JMenuItem rehacer;
   
   private Lienzo pizarron;
   
   public Ventana(){
       
       super("Paint v2.0");

       //Creando el pizarron y las barras
       
       pizarron = new Lienzo();
       barraSuperior = new JMenuBar();
       panelInferior = new JPanel();
       panelInferior.setLayout(new BorderLayout());
       barraInferior = new JLabel("Dibuje en el panel blanco");
       panelInferior.add(barraInferior);
       
       //Creacion de los menus
       
       archivo = new JMenu("Archivo");
       editar = new JMenu("Editar");
       colores = new JMenu("Colores");
       formas = new JMenu("Formas");
       achurado = new JMenu("Achurado");
       ayuda = new JMenu("Ayuda");
       
       //Creacion de los items de cada menu
       
       nuevo = new JMenuItem("Nuevo");
       salir = new JMenuItem("Salir");
       deshacer = new JMenuItem("Deshacer");
       rehacer = new JMenuItem("Rehacer");
       
       //Agregando items a los menus respectivos
       
       archivo.add(nuevo);
       archivo.add(salir);
       
       editar.add(deshacer);
       editar.add(rehacer);
       
       //Construyendo la barra de menus

       barraSuperior.add(archivo);
       barraSuperior.add(editar);
       barraSuperior.add(colores);
       barraSuperior.add(formas);
       barraSuperior.add(achurado);
       barraSuperior.add(ayuda);
       
       //Agregando las barras y lienzo.
       
       setJMenuBar(barraSuperior);
       add(pizarron,BorderLayout.CENTER);
       add(panelInferior,BorderLayout.SOUTH);
       
       EventoMouse evento1 = new EventoMouse();
       salir.addMouseListener(evento1);
       pizarron.addMouseListener(evento1);
       pizarron.addMouseMotionListener(evento1);
       
       setSize(500,500);
       setResizable(false);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setVisible(true);
       
   }
   
   private class EventoMouse extends MouseAdapter implements MouseMotionListener {
       
       public void mouseClicked(MouseEvent e){
           
           if(salir.isSelected()){
               
               System.exit(0);

           }
           
       }
       
       public void mouseEntered(MouseEvent e){
           
           if(e.getSource().equals(pizarron)){
               
               barraInferior.setText(String.format("%d , %d",e.getX(),e.getY()));
               
           }
           
       }

       public void mouseMoved(MouseEvent e){
           
           if(e.getSource().equals(pizarron)){
               
               barraInferior.setText(String.format("%d , %d",e.getX(),e.getY()));
               
           }
       }
       
       public void mouseDragged(MouseEvent e){
           
           if(e.equals(pizarron)){
               
               barraInferior.setText(String.format("%d , %d",e.getX(),e.getY()));
               
           }
       }

   }
   

}

Debci