كيفية وقف تحرير مع DefaultCellEditor عندما يتم الضغط على JBtton منفصلة

StackOverflow https://stackoverflow.com/questions/377924

سؤال

وحصلت على الجدول مع TableCellEditor مخصصة (تمتد DefaultCellEditor) مع JFormattedTextField باعتبارها العنصر المحرر.

والآن حصلت مشكلة: عند الضغط على زر منفصل أثناء التحرير. عند الضغط على زر، يبقى محرر "فتح ونشط" في حين كنت تريد أن إيقاف التحرير بحيث التغييرات التي ستكون متاحة لعمليات الناجمة عن زر.

وهكذا كيفية تسبب التحرير يجب أن تتوقف عند الضغط على زر واضح. حاولت <م> setFocusLostBehavior (JFormattedTextField.COMMIT) ل<م> JFormattedTextField ولكن لا يبدو أن يكون لها أثر.

والأمل شخص لديه بعض الأفكار الجيدة =)

هل كانت مفيدة؟

المحلول

يمكنك محاولة

وjtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

نصائح أخرى

وبفضل asalamon74، الذي يعمل بشكل جيد جدا.

وهناك جدل حول شيء في الشمس علة قاعدة البيانات: علة 4724980: JTable: إضافة API للسيطرة على ما يحدث للتعديلات عندما يفقد الجدول التركيز. (وأيضا توجد إدخالات علة أخرى). وterminateEditOnFocusLost يتحول على السلوك "إلزام أو إلغاء" التي يمكن رؤيتها في مصادر جافا في الدرجة <م> JTable $ CellEditorRemover

ونعم، انها غريبة بعض الشيء التي لم يتم توثيقها في واجهات برمجة التطبيقات وما إلى ذلك ...

وكان أيضا المزيد من القضايا مع هذه الأمور، راجع السؤال <في أ href = "https://stackoverflow.com/questions/1276769/java-swing-changing-jtree-selection-while-editingstopcellediting-how-to-get "> جافا سوينغ: تغيير التحديد JTree بينما editingstopCellEditing (): كيفية الحصول على stopCellEditing () تسمى قبل TreeListeners: valueChanged

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top