2011-09-30 19 views
5

जेटीबल सेल वैल्यू चेंज की स्थिति पर प्रतिक्रिया करने के लिए कौन सा श्रोता इस्तेमाल किया जा सकता है? मैंने TableModelListener का उपयोग करने का प्रयास किया लेकिन मुझे कुछ गलत मिला, या यह श्रोता सेल की सामग्री को बदलने पर प्रतिक्रिया नहीं करता है।जेटीबल सेल वैल्यू चेंज श्रोता

मुझे या तो सेल की सामग्री को बदलने या सेल खोने के लिए कार्य करने की आवश्यकता है। इसे करने का बेहतरीन तरीका क्या है? धन्यवाद।

+3

आपके मॉडल कार्यान्वयन (या इसके उपयोग) में कुछ गड़बड़ है - इसे बदलने पर _always_ को सूचित करना होगा। TableModelListener – kleopatra

+0

जाने का तरीका है वास्तव में, यह मामला था। तालिका अद्यतन विधियों में से एक मॉडल को बदल दिया और श्रोता पुराने मॉडल से जुड़ा हुआ था। मुझे देखने के लिए धन्यवाद कि कौन सा देखना है। – celicni

उत्तर

2

बदलते मूल्यों पर प्रतिक्रिया करने का आसान तरीका एक तालिका मॉडल को अनुकूलित करना और setValueAt() पर प्रतिक्रिया देना है।

यदि आप सुनिश्चित करना चाहते हैं कि संपादन स्टिक "जब यह फोकस खो देता है, तो इसे तालिका पर कॉल करें।

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); 
5
class extends JTable { 

.... (contructor के अंदर)

addPropertyChangeListener(new PropertyChangeListener() { 

    @Override 
    public void propertyChange(PropertyChangeEvent evt) { 
     if ("tableCellEditor".equals(evt.getPropertyName())) { 
      if (isEditing()) 
       processEditingStarted(); 
      else 
       processEditingStopped(); 
     } 
    } 
}); 

... (अंत निर्माता)

protected void processEditingStopped() { 
    System.out.println("save " + editingRow + ":" + editingColumn); 
} 

protected void processEditingStarted() { 
    System.out.println("edit " + editingRow + ":" + editingColumn); 
    if (editRow > -1 && editColumn > -1) 
     oldValue = (String) model.getValueAt(editRow, editColumn); 
} 

}

अधिक जानकारी के लिए यहाँ: http://tips4java.wordpress.com/2009/06/07/table-cell-listener/

+0

एह ... नहीं (रॉब के सुझाव से गलत तरीके से कॉपी किया गया ;-) सामान्य मामले में वैसे भी करने के लिए सबसे अच्छी बात नहीं है। – kleopatra

+0

इसकी प्रतिलिपि बनाई गई है इसका अर्थ – ungalcrys

+0

पर जोर दिया गया है _incorrect_ (प्रतिलिपि नहीं) पर - ध्यान से विवरण की तुलना करें :-) – kleopatra