• Sábado 21 de Septiembre de 2024, 11:45

Autor Tema:  Pop Up Menu  (Leído 923 veces)

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Pop Up Menu
« en: Martes 3 de Junio de 2008, 12:46 »
0
Saludos compañeros, tengo un lista, JList, y  un ScrollPane sobre ella,       JScrollPane sc_pos=new JScrollPane(lista); y quiero hacer un pop up, de manera que al pinchar sobre ella con el boton derecho salga un menu para lo tipico de cortar y pegar texto. El pop up menu creo que lo tengo bien, pero me falla el asociarlo al area determinada, que tengo que hacerlo sobre la lista o sobre el scroll pane ???

El codigo que tengo es (lo que mas me importa es la ultima parte, lo de los actionListener):

      JPopupMenu pop=new JPopupMenu();
      JMenuItem cortarpop,copiarpop,pegarpop;
      JSeparator separador =new JSeparator();
      copiarpop=new JMenuItem("Copiar");
      copiarpop.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK));
      pop.add(copiarpop);        
      pop.add(separador);
      cortarpop=new JMenuItem("Cortar");
      cortarpop.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK));
      pop.add(cortarpop);        
      pop.add(separador);
      pegarpop=new JMenuItem("Pegar");
      pegarpop.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK));
      pop.add(pegarpop);  


      sc_pos.addMouseListener(new MouseAdapter(){
         public void mousePressed(MouseEvent ev){
            areaMousePressed(ev);
      } });

      void areaMousePressed(MouseEvent ev){
       boolean textoSeleccionado=sc_pos.getSelectedText()!=null;
            cortarpop.setEnabled(textoSeleccionado);
       copiarpop.setEnabled(textoSeleccionado);
       if(ev.getButton()==MouseEvent.BUTTON3)
          pop.show(sc_pos,ev.getX(),ev.getY());
      }   });

Por favor, alguien podria ayudarme ?

Muchas gracias.