मैंने जावाक्क्स दृश्य बिल्डर के साथ एक Fxml के अंदर एक चॉइसबॉक्स लगाया।कौन सा चॉइसबॉक्स-इवेंट चुनने के लिए?
एफएक्सएमएल में एक नियंत्रक है जो इसे सौंपा गया है।
मेरा प्रश्न है: यदि मैं बदले गए मूल्यों के बारे में जानना चाहता हूं तो मुझे किस कार्यक्रम को पंजीकरण करने की आवश्यकता है?
onInputMethodTextChanged="#languageSelectionModified"
इस निम्नलिखित कोड
public void languageSelectionModified(Event event) {
ChoiceBox<String> box = (ChoiceBox<String>) event.getSource();
System.out.println(box.getValue());
}
और आरंभिक क्लिक के लिए यह केवल काम करता है के साथ काम नहीं करता है (यानी जब एक आइटम का चयन सूची खोलने, नहीं):
onMouseClicked="#languageSelectionModified"
यद्यपि माउस-इवेंट्स ऐसी परिस्थितियों के कारण कभी भी अच्छा विकल्प नहीं होगा जहां स्पर्श या कीबोर्ड इनपुट-विधि है, फिर भी यह साबित करता है कि System.out तक पहुंचा जा सकता है।
choicebox.getSelectionModel().selectedItemProperty().addListener(choiceboxSelectionChangeListener);
आप:
मैं absolutly कोई पता नहीं है, जहां उन चीजों documentated कर रहे हैं (डिफ़ॉल्ट जावा एपीआई में ऐसा नहीं होता)
आपके उत्तर के लिए धन्यवाद! यह अच्छी तरह से काम करता है। तो 'सामान्य' FXML-events के माध्यम से इसे करने का कोई तरीका नहीं है? यदि आप मुझे बता सकते हैं कि मैं FXML-फ़ाइलों के लिए मौजूदा (और परिभाषित) ईवेंट को देखने में सक्षम हूं, तो मैं आपके प्रश्न का उत्तर देने के रूप में आपका उत्तर चिह्नित करता हूं। – Gundon
नहीं, आप JavaFX 2.0 से 2.2 का उपयोग कर FXML में इसके लिए ईवेंट नहीं देख सकते हैं। – jewelsea
चयन मॉडल ईवेंट तब भी ट्रिगर होता है जब पसंदबॉक्स का मान कोड द्वारा सेट किया जाता है (मेरे मामले में, मेरे पास एक विकल्प है जो बाल पसंद बॉक्स के रूप में पॉप्युलेट करता है) और मेरी इच्छा है कि "उपयोगकर्ता द्वारा संचालित परिवर्तनों" को अलग करने का एक साफ तरीका था कोड संचालित लोगों। – Mikeb