style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Duda con JPopupMenu

Estuve probando la clase JPopupMenu debido a que nunca la había utilizado, entonces, después de probar y probar llegue al punto de tener dos clases que para mi son casi exactaente iguales (ya que con una genero un JMenuBar) , pero con la gran diferencia de que una lo genera y la otra no. No he podido encontrar la diferencia que hace que una sirva y la otra sea una reverenciada basura.

// Primera Clase

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;

public class PruebaPopUp implements ActionListener {
    private JPopupMenu popup;
    private JFrame ventana;
    private JMenuItem menuItem;
    private JMenuBar barra;
    private JMenu jmenu;

    public PruebaPopUp() {
        ventana = new JFrame("Marco Apoyo");

        barra = new JMenuBar();
        jmenu = new JMenu("Una barra de menu");
        menuItem = new JMenuItem("Item");
        menuItem.addActionListener(this);
        jmenu.add(menuItem);
        menuItem = new JMenuItem("Un item del menu");
        menuItem.addActionListener(this);
        jmenu.add(menuItem);
        jmenu.addSeparator();
        menuItem = new JMenuItem("Another one");
        menuItem.addActionListener(this);
        jmenu.add(menuItem);
        barra.add(jmenu);
        ventana.setJMenuBar(barra);
       
       
        popup = new JPopupMenu();
        menuItem = new JMenuItem("A popup menu item");
        menuItem.addActionListener(this);
        popup.add(menuItem);
        menuItem = new JMenuItem("Another popup menu item");
        menuItem.addActionListener(this);
        popup.add(menuItem);
       
        MouseListener popupListener = new PopupListener();
        ventana.addMouseListener(popupListener);
    }
    public void actionPerformed(ActionEvent e){
        JOptionPane.showMessageDialog(null,"Se ha picado en el boton","Dialogo",JOptionPane.INFORMATION_MESSAGE);      
    }
   
    class PopupListener extends MouseAdapter{
        public void mousePressed(MouseEvent e){
            maybeShowPopup(e);
           
        }
        public void mouseRelased(MouseEvent e){
            maybeShowPopup(e);
           
        }
       
        private void maybeShowPopup(MouseEvent e){
            if(e.isPopupTrigger()){
                popup.show(e.getComponent(),
                          e.getX(),e.getY());
            }
        }
       
    }
   
    public static void main(String[]args){
        PruebaPopUp pop = new PruebaPopUp();
        pop.ventana.setSize(400,300);
        pop.ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pop.ventana.getContentPane().setBackground(Color.white);
        pop.ventana.setVisible(true);
   

        }
}

// *************************************************Segunda Clase **************************************************************************

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;

public class Class1 implements ActionListener {
    private JPopupMenu popup;
    private JMenuItem menuItem;
    private JFrame output;
   
    public Class1(){
        output = new JFrame("Marco de trabajo");
       
        popup = new JPopupMenu();
        menuItem = new JMenuItem("A popup menu item");
        menuItem.addActionListener(this);
        popup.add(menuItem);
        menuItem = new JMenuItem("Another popup menu item");
        menuItem.addActionListener(this);
        popup.add(menuItem);

        //Add listener to components that can bring up popup menus.
        MouseListener popupListener = new PopupListener();
        output.addMouseListener(popupListener);
    }
    public void actionPerformed(ActionEvent evento){
        JOptionPane.showMessageDialog(null,"MENSAJE","MENSAJe",JOptionPane.INFORMATION_MESSAGE);
   
    }
    class PopupListener extends MouseAdapter {
        public void mousePressed(MouseEvent e) {
            maybeShowPopup(e);
        }

        public void mouseReleased(MouseEvent e) {
            maybeShowPopup(e);
        }

        private void maybeShowPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                popup.show(e.getComponent(),
                           e.getX(), e.getY());
            }
        }
    }
   
    public static void main(String[]args){
        Class1 x =new Class1();
        x.output.setSize(400,300);
        x.output.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        x.output.setVisible(true);
       
    }
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

En tu primer clase, hace

En tu primer clase, hace falta una letra en un método de tu clase PopupListener el método es:

public void mouseRelased(MouseEvent e){
      maybeShowPopup(e);    
}

Cuando debería ser:

public void mouseReleased(MouseEvent e){
      maybeShowPopup(e);    
}

La letra que falta es la e.

Imagen de Moctezuma

Agradecimiento

No puedo creer que no viera algo tan tonto ¬¬, gracias señor programador , si te conociera haria mi proyecto de titulacion contigo xD

Imagen de Jose Manuel

Yo no soy programador joven,

Yo no soy programador joven, los verdaderos programadores son los que tienen el nivel de doctorado, yo todavía ni la ingeniería termino...

Imagen de neko069

...

Yo no soy programador joven, los verdaderos programadores son los que tienen el nivel de doctorado, yo todavía ni la ingeniería termino...

T _ T

Imagen de Jose Manuel

Jajaja, eso fue citado varias

Jajaja, eso fue citado varias veces en un congreso al que asiste hace poco. La mayoría de los expositores tenían el nivel de doctorado. Nos decían a los estudiantes: Ustedes no son programadores, los doctores si lo son. Ellos si hacen código, ustedes no. Ya imaginaras la cara que pusimos la mayoría.
Un rostro que combinaba tristeza, desesperación e ira pero sobre todo sed de sangre jajaja.

Imagen de Moctezuma

Te asimilo y te comprendo

Asi son los doctores, se sienten en la gloria, yo tambien asisti a un congreso similar y la mayoria de ellos solo leia diapositivas y no decian nada que realmente valiera la pena. No se a que nivel programan, pero al menos a mi si me llamaron programador falso. Thanks again.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">