2011-05-03 13 views
12

क्या यह सामान्य है कि JTable की चुनी गई पंक्ति में कोई भी परिवर्तन जोड़ा गया ListSelectionListener दो बार ट्रिगर करेगा?JTable हमेशा ListSelectionListener को दो बार क्यों ट्रिगर करता है?

क्या यह संभव है कि ListSelectionListener केवल एक बार ट्रिगर किया जा सके? घटना में है कि अपने श्रोता को पारित कर दिया है पर

उत्तर

20

देखो, विशेष रूप से

ListSelectionEvent.getValueIsAdjusting() 

प्रदर्शन जो कुछ ऑप्स आप जब यह गलत रिटर्न करना चाहते हैं।

+1

धन्यवाद ... यह समस्या हल करता है ... –

+0

क्या आप कुछ और विस्तृत उत्तर दे सकते हैं @MeBigFatGuy –

1

ListSelectionEvent.getValueIsAdjusting() @MeBigFatGuy द्वारा टिप्पणी के रूप में काम करेगा।

इसी प्रकार के उदाहरण:

if(!e.getValueIsAdjusting()){ 
    String selectedData = null; 

    int selectedRow = table.getSelectedRow(); 
    int selectedColumns = table.getSelectedColumn(); 

    for (int i = 0; i <= selectedRow; i++) { 
     for (int j = 0; j <= selectedColumns; j++) { 
      selectedData = (String) table.getValueAt(selectedRow, selectedColumns); 
     } 
    } 
    System.out.println("Selected: " + selectedData); 
} 

यह सिर्फ एक बार शुरू हो रहा हो जाएगा।

+0

धन्यवाद @ jrbedard – joshdlv

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