2012-09-14 15 views
7

Birden çok JTable'a eklediğim bir JPopUpMenu'm var ve sağ tıklattığım belirli bir tabloyu almak istiyorum, böylece değişiklik yapabilirim. Eylem Dinleyicide JPopupMenu'yu tetikleyen bileşeni nasıl alabilirim?Bir JPopupMenu çağrısı yapan bileşen nasıl alınır?

JPopupMenu popupMenu = new JPopupMenu(); 
JMenuItem menuItemRename = new JMenuItem("Rename"); 
popupMenu.add(menuItemRename); 
table.getTableHeader().setComponentPopupMenu(popupMenu); 

ActionListener menuListener = new ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
      String newTitle = JOptionPane.showInputDialog(null, "Enter new title"); 
        //Get the table and rename it here 
       } 
      }; 
menuItemRename.addActionListener(menuListener); 
+1

+1. Şimdi ActionListener yerine Action kullanın ve mükemmel olurdu :-) – kleopatra

+0

Kleopatra ne demek istiyorsun? Eylemi nasıl kullanabilirim? – Igor

+0

öğrenmek için en hızlı yolu öğretici (swing tag wiki içinde başvurulan) bölümleri nasıl kullanacağınız Eylemler/Menüler :-) – kleopatra

cevap

9

getInvoker() yöntemini kullanın.

Component invoker = popupMenu.getInvoker(); 
+0

ps nasıl kullanacağınızı öğrenmek için 'ActionEvent' kaynağı bir 'JPopupMenu' başvurusu gerekir ilk;) – MadProgrammer

+0

Bu işe yarıyor. Sadece koduma uyacak şekilde düzenlerim. – Igor

+0

Bir sorun olsa da ... başlık tekrar tıklanana kadar seçili kalır. Herhangi bir fikir? – Igor

0

event.getSource() yöntemini kullanın; ComponentPopupMenu'yu kullanmak için

+1

Hayır, size poperi verecek, onu değil – kleopatra

İlgili konular