الحصول على النص الذي تمت إزالته من مكون نص Java
-
09-09-2019 - |
سؤال
أ JTextComponent
يسمح لك بإضافة DocumentListener
إلى حد Document
, ، والتي ستخبرك عند إضافة نص أو إزالته، وإزاحة وطول التغيير. ومع ذلك، لن يخبرك ما هو نص التغيير.
هذه ليست مشكلة كبيرة للإضافة النصية، حيث يمكنك استخدام الإزاحة والطول للعثور على النص المضافة. ومع ذلك، لا يمكنك استخدامه للعثور على النص المحذوف، حيث أن النص قد ذهب بالفعل.
هل يركض أي شخص في هذه المشكلة من قبل؟ كيف يمكنك الحصول على السلسلة التي تم حذفها من وثيقة؟
المحلول
تثبيت أ DocumentFilter
داخل ال AbstractDocument
.
(راجع للشغل: في الأرجوحة عادة ما يكون من الأفضل أن تذهب مباشرة إلى النموذج (في وثيقة الحالة هذه).)
نصائح أخرى
يتم إضافة النص في كل مرة، تخزين المستند في الذاكرة. تتم إزالة النص في كل مرة، ومقارنة المستند إلى ما تم تخزينه الأخير لتحديد ما تمت إزالته.
قم بتخزين الإصدار الأصلي للنص في خاصية حيث يمكنك القيام ب "خدعة طول الإزاحة" للحصول على السلسلة التي تمت إزالتها. يجب أن تفعل غرامة