2011-03-03 15 views

उत्तर

5

लघु जवाब: नहीं कोई रास्ता नहीं पता करने के लिए जो बटन दबाया था

लांग जवाब: अपने मॉडल और अपने परिवर्तन श्रोता पर निर्भर करता है, अगर आप नए मूल्य और पिछले मान के बीच तुलना करते हैं, यह संभव है यह जानने के लिए कि क्या उपयोगकर्ता आगे या पीछे चला गया है।

1

आप घटना को फायर करने वाली वस्तु का निरीक्षण कर सकते हैं। शायद घटना से पहले मूल्य को बचाएं और यह निर्धारित करें कि यह घटना के दौरान ऊपर या नीचे चला गया है या नहीं।

0

पिछले मान की वास्तविक मान की तुलना करें।

ChangeEvent ce = ... 
((JSpinner)ce.getSource()).getPreviousValue(); 
+1

मुझे लगता है कि यह केवल अगले मान को वर्तमान मूल्य से नीचे कर देगा, न कि पहले जो मूल्य चुना गया था। – jzd

0

आप पुराने मूल्य भंडारण के द्वारा पुराने मूल्य के खिलाफ नया मान जांच कर सकते हैं: यहाँ है कैसे

int currentValue = spinner.getValue(); 
spinner.addChangeListener(new javax.swing.event.ChangeListener() { 
    public void stateChanged(javax.swing.event.ChangeEvent e) { 
     int value = spinner.getValue(); 
     if(value > currentValue) { 
      // up was pressed 
     } else if(value < currentValue) { 
      // down was pressed 
     } 
     currentValue = value; 
    } 
}); 
+0

हाँ, मैं इसे समझता हूं, लेकिन मैं जो करना चाहता हूं वह जेएसपीनर का इस तरह से उपयोग करता है कि वर्तमान मूल्य चरण आकार रखता है, और चरण के अनुसार मेरे गुई में किसी अन्य फ़ील्ड को संशोधित करने के लिए वृद्धि/घटाने वाले बटन का उपयोग किया जाता है। तो अगले और पिछले मान हमेशा एक ही रहना चाहिए, सिवाय इसके कि यदि मैं मैन्युअल रूप से प्रदर्शित चरण मान को संशोधित करता हूं। मुझे नहीं पता कि मेरी व्याख्या पर्याप्त स्पष्ट है या नहीं। वैसे भी आपके समाधान – Heisenbug

+0

@Overbose के लिए धन्यवाद - उस स्थिति में, शायद आप अपना अन्य मूल्य 'स्पिनरमोडेल' सुनना चाहते हैं? ऐसा लगता है कि यह एक अच्छा समाधान हो सकता है। – justkt

0

JSpinner एक समग्र घटक है, यह घटक उसमें शामिल mouseListeners जोड़ना संभव नहीं है । एक दूसरे से और टेक्स्ट फ़ील्ड से बटन को अलग करने के तरीके के लिए आपको थोड़ा सा प्रयोग करना होगा। एक त्वरित और गंदा तरीका उनके निर्देशांक की जांच करना होगा।

मुझे यकीन नहीं है कि क्या आप जेएसपीनर द्वारा निहित घटकों पर पुन: प्रयास करना चाहते हैं, या JSpinner.getEditor() द्वारा कंटेनर द्वारा निहित किए गए लोगों को, इसलिए दोनों को आजमाएं।

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