2010-06-20 7 views
23

मेरे जीवन के लिए मुझे जावा स्विंग क्रियाओं पर विवरण नहीं मिल रहा है: '(जब मैं उन पर आया तो मुझे तुरंत उनकी उपयोगिता का एहसास हुआ। अब तक काम करना आसान रहा है। अब मैं एक छोटी सी चीज से फंस गया हूं : मैं कैसे उन्हें मैन्युअल रूप से चला सकता हूँ मैं कोड मतलब ध्यान दें कि मैं जीयूआई Netbeans (कि यदि कोई फर्क नहीं पड़ता) का उपयोग कर निर्माण कर रहा हूँ के रूप में मैं के रूप में दूर आ गए?मैं स्विंग में मैन्युअल रूप से एक क्रिया कैसे शुरू करूं?

Application a = Application.getInstance(JPADemoApp.class); 
ApplicationContext ctx = a.getContext(); 
ActionMap am = ctx.getActionMap(JPADemoView.class, this.app); 
Action act = am.get("fetchOrders"); 

(मैं सभी पर लिखा था। अलग-अलग पंक्तियों डिबगिंग सरल करने के लिए)

तो अब मैं लड़ाई के लिए एक वैध संदर्भ की है। अब मैं इसे कैसे चला सकता हूँ?

उत्तर

8

यदि आप मैन्युअल रूप से अपना कार्य चलाना चाहते हैं, तो आप ActionEvent उत्पन्न कर सकते हैं और इसे actionPerformed विधि में पास कर सकते हैं कि Action को लागू करना होगा, क्योंकि Action इंटरफ़ेस ActionListener तक फैला है।

+2

मैं फिर से इस सवाल के पार आया, और आपका जवाब है - @ b1nary.atr0phy में से एक से अधिक विस्तृत - मेरी राय में। भले ही इसमें अधिक वृद्धि हो, मैं इसे स्वीकार कर दूंगा। मुझे लगता है कि दूसरा एक और वोट आकर्षित करता है क्योंकि यह कॉपी/पेस्टेबल है। शायद एक कोड-नमूना इस जवाब में सुधार करेगा? – exhuma

+0

निश्चित रूप से, एक कोड नमूना आसान होगा - कॉपी/पेस्ट प्रोग्रामिंग का समर्थन नहीं करने के लिए, लेकिन यह अवधारणा को प्रोग्रामर के लिए अधिक समझने योग्य तरीके से चित्रित करेगा। – Suma

2

क्योंकि ActionEventListener है, तो आप कार्रवाई के तरीकों का पर्दाफाश करने के तरीके के रूप में EventListenerList को लागू करने पर विचार करना चाहेंगे।

28

आप बस कार्रवाई घटना की विधि सीधे आह्वान कर सकते हैं:

for(ActionListener a: buttonExample.getActionListeners()) { 
    a.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) { 
      //Nothing need go here, the actionPerformed method (with the 
      //above arguments) will trigger the respective listener 
    }); 
} 
+0

आप खाली घुंघराले ब्रेसिज़ को हटा सकते हैं। Http://tinybrain.de/1007469 –

+0

देखें यह एक बहुत बेहतर और सरल है: https://stackoverflow.com/a/5109301/540552 –

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