2010-10-07 7 views
9

मेरे पास एक JTable है जैसा कि अनुसरण करता है।फोर्स जेटीबल मॉडल को डेटा "प्रतिबद्ध" करने के लिए मजबूर करता है, जबकि यह अभी भी संपादन मोड में है

alt text

तो, जबकि JTable संपादन मोड में अब भी है (वहाँ लाभांश स्तंभ पर निमिष एक कुंजीपटल कर्सर है), पर क्लिक ठीक सीधे तालिका मॉडल में डेटा के लिए प्रतिबद्ध नहीं होंगे। ठीक क्लिक करने से केवल संवाद बॉक्स बंद करें।

मुझे तालिका मॉडल में डेटा को प्रतिबद्ध करने के लिए स्पष्ट रूप से ENTER दबाए जाने की आवश्यकता है।

JTable संपादन मोड में अब भी है, वहीं संवाद बॉक्स बंद करने से पहले, वहाँ किसी भी तरह से मैं कह रहा, द्वारा JTable बता सकते है

"अरे, आप अपने मॉडल में परिवर्तन के लिए प्रतिबद्ध करने के लिए समय आ गया है" इस संवाद बॉक्स के लिए स्रोत कोड Dialog Box Source Code का पालन करें। ठीक दबाए जाने पर निष्पादित कोड के लिए jButton1ActionPerformed पर नज़र डालें।

+0

आपने शायद जीयूआई कोड उत्पन्न करने के लिए एक आईडीई का उपयोग किया था। लेकिन क्या आप परिवर्तनीय नामों को कुछ और दोस्ताना में बदल सकते हैं। पढ़ने के लिए बहुत मुश्किल है जब हर सिंहाइन लेबल किया गया है बटन 1 बटन 2 लेबल 1 – Sean

+0

इसके बारे में क्षमा करें। ओके दबाए जाने पर निष्पादित कोड के लिए jButton1ActionPerformed पर देखें। –

उत्तर

15

मुझे यकीन है कि अगर यह काम करेगा नहीं कर रहा हूँ (यह एक SCCE करना अच्छा हो गया होता), लेकिन इस प्रयास करें:

TableCellEditor editor = table.getCellEditor(); 
if (editor != null) { 
    editor.stopCellEditing(); 
} 
4

पूरे स्थिर बंद किसी भी राज्य में पूरी तरह से संपादन (संपादन करने के लिये या नहीं), आप संपादन बंद कर सकते हैं:

table.editingStopped(new ChangeEvent(table)); 

इस तरह आपको संपादकों/राज्य/आदि की जांच करने की आवश्यकता नहीं है।

3

Table Stop Editing कुछ दृष्टिकोण देता है।

+0

उस वेबसाइट पर स्विंग प्रोग्रामिंग के लिए एक बहुत ही उपयोगी टिप्स और चालें हैं। क्या मैं जानता हूं कि आप लेखक हैं? –

+1

हां, कई प्रविष्टियों के लिए, लेकिन डेरिल भी मदद करता है। – camickr

+0

अच्छी नौकरी। मैं पहले से ही अपने स्वादिष्ट में डाल दिया :) –

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