पर डबल-क्लिक ईवेंट मेरे पास के साथ JList
है।जेएलआईस्ट तत्व
मैं JList
में कोई आइटम कैसे बना सकता हूं, डबल-क्लिक ईवेंट पर प्रतिक्रिया करता हूं?
पर डबल-क्लिक ईवेंट मेरे पास के साथ JList
है।जेएलआईस्ट तत्व
मैं JList
में कोई आइटम कैसे बना सकता हूं, डबल-क्लिक ईवेंट पर प्रतिक्रिया करता हूं?
String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
// Double-click detected
int index = list.locationToIndex(evt.getPoint());
} else if (evt.getClickCount() == 3) {
// Triple-click detected
int index = list.locationToIndex(evt.getPoint());
}
}
});
मैं तुम्हें एक सरल उपाय है पता है, लेकिन आप एक अधिक सामान्य समाधान है कि आप कीबोर्ड के साथ ही माउस का उपयोग करने की अनुमति देगा के लिए List Action की जाँच कर सकते हैं। उचित जीयूआई डिज़ाइन को उपयोग को किसी भी दृष्टिकोण का उपयोग करने की अनुमति देनी चाहिए।
(मोहम्मद Saligh, स्वीकार किए जाते हैं प्रतिक्रिया के आधार पर)
आप NetBeans
JList> ईवेंट खिड़की> mouseClicked
private void jListNicknamesMouseClicked(java.awt.event.MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
int index = list.locationToIndex(evt.getPoint());
System.out.println("index: "+index);
}
}
नोट का चयन करें उपयोग कर रहे हैं कि सूची खाली जगह है, तो और उपयोगकर्ता रिक्त स्थान पर डबल क्लिक करता है, यह सूची में अंतिम ऑब्जेक्ट पर डबल क्लिक का पता लगाएगा। यदि आप केवल उस सूची के क्षेत्र में क्लिक का पता लगाना चाहते हैं जिसमें आइटम शामिल हैं, तो आप इस तरह की जांच कर सकते हैं: आयत आर = list.getCellBounds (0, list.getLastVisibleIndex()); यदि (आर! = शून्य और&.c.contains (evt.getPoint())) { int अनुक्रमणिका = list.locationToIndex (evt.getPoint()); } –
स्थान ToIndex का उपयोग करने के बजाय, वर्तमान में चयनित आइटम के लिए जेएलिस्ट से पूछना पर्याप्त नहीं होगा? यानी बस list.getSelectedIndex() पर कॉल करें। –
@ कूकी मॉन्स्टर, अगर सूची बहुविकल्पीय है तो यह काम नहीं करेगी। –