2012-09-14 16 views
7

मेरे पास एक जेपीओपअपमेनू है जिसे मैंने कई जेटीबल्स में जोड़ा है और मैं उस विशिष्ट तालिका को प्राप्त करना चाहता हूं जो सही क्लिक किया गया है, इसलिए मैं इसमें बदलाव कर सकता हूं। मैं एक्शन श्रोता में जेपीओपअपमेनू को ट्रिगर करने वाला घटक कैसे प्राप्त कर सकता हूं?जेपीओपअपमेनू को लागू करने वाले घटक को कैसे प्राप्त करें?

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। अब एक्शनलिस्टर के बजाय एक्शन का उपयोग करें और यह सही होगा :-) – kleopatra

+0

@ क्लेओपेट्रा आपका क्या मतलब है? मैं एक्शन का उपयोग कैसे कर सकता हूं? – Igor

+0

सीखने का सबसे तेज़ तरीका यह है कि एक्शन/मेनू का उपयोग करने के तरीके पर ट्यूटोरियल (स्विंग टैग विकी में संदर्भित) अध्याय पढ़ना है :-) – kleopatra

उत्तर

9

getInvoker() विधि का उपयोग करें।

Component invoker = popupMenu.getInvoker(); 
+0

ps आपको 'एक्शनवेन्ट' स्रोत को 'जेपीओपअपमेनू' संदर्भ में केस करने की आवश्यकता होगी पहले;) – MadProgrammer

+0

यह काम करता है। मैं बस इसे अपने कोड फिट करने के लिए संपादित करूँगा। – Igor

+0

हालांकि एक समस्या ... हेडर तब तक चयनित रहता है जब तक कि इसे फिर से क्लिक नहीं किया जाता है। कोई विचार? – Igor

0

event.getSource() विधि का उपयोग करें; घटक 12PupupMenu का उपयोग करने के लिए

+1

नहीं, जो आपको पॉपअप देगा, न कि इसके आवेदक – kleopatra

संबंधित मुद्दे

 संबंधित मुद्दे