"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يتم تحديث jtextarea الخاص بي بعد تعديل صفيف باستخدام swingpropertychangesupport؟

لماذا لا يتم تحديث jtextarea الخاص بي بعد تعديل صفيف باستخدام swingpropertychangesupport؟

نشر في 2025-02-07
تصفح:793

Why Does My JTextArea Not Update After Modifying an Array Using SwingPropertyChangeSupport?

يتيح ذلك إخطار الكائنات الأخرى عندما تتغير خاصية ، والتي يمكن أن تكون مفيدة لتحديث واجهة المستخدم الرسومية وفقًا لذلك.

تم إدخاله عبر مربع حوار إدخال. يتم تحديث المصفوفة موافق ، لكن واجهة المستخدم الرسومية غير منتعش. استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionListener ؛ استيراد java.awt.event.focusListener ؛ استيراد java.beans.propertyChangeEvent ؛ استيراد java.beans.propertychangelistener ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jframe ؛ استيراد javax.swing.joptionpane ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jtextarea ؛ استيراد javax.swing.event.swingpropertychangesupport ؛ الطبقة العامة الرئيسية { الفراغ الثابت العام الرئيسي (سلسلة [] arg) { display guiforupdate = new guiforupdate () ؛ display.setVisible (صحيح) ؛ } } Class GuiforupDate يمتد JFrame تنفيذ ActionListener { /** * */ خاص ثابت نهائي طويل المسبانيويد = 1L ؛ Private FocusListener FocusListener ؛ سلسلة خاصة mlist ؛ الخاص Jbutton Changearraybutton ؛ codein jtextarea private ، displayOutput ؛ خاص int arrayindex ؛ jpanel الخاص DisplayPanel ؛ arrayforupdating arrayForUpDate = جديد ArrayForUpDating () ؛ GUIFORUPDATE العامة () { setSize (224 ، 180) ؛ layoutleft () ؛ LayoutDisplay () ؛ LayoutBottom () ؛ } /** * يضيف منطقة عرض للمصفوفة */ public void layoutdisplay () { DisplayPanel = new jpanel () ؛ إضافة (displaypanel ، borderlayout.center) ؛ DisplayOutput = new JTextarea () ؛ DisplayPanel.add (DisplayOutput) ؛ DisplayOutput.addfocusListener (FocusListener) ؛ Mlist = arrayForUpDate.getBoundProperty () ؛ arrayforupdate.addpropertychangelistener (New PropertyChangelistener () { @تجاوز propertychange public void (propertyChangeEvent PCEVT) { if (PCEVT.GetPropertyName (). يساوي ( arrayforupdating.bound_property)) { mlist = (pCEVT.GetNewValue (). toString ()) ؛ updatedisplay () ؛ } } }) ؛ DisplayOutput.settext (Mlist) ؛ } /** * يضيف العناصر الجانبية اليسرى إلى يسار واجهة المستخدم الرسومية */ public void layoutleft () { jpanel left = new jpanel () ؛ إضافة (يسار ، borderlayout.west) ؛ Codein = New JTextarea (2 ، 2) ؛ left.add (codein) ؛ codein.addfocusListener (FocusListener) ؛ } /** * يضيف العناصر السفلية إلى أسفل واجهة المستخدم الرسومية */ public void layoutbottom () { JPanel Bottom = New JPanel () ؛ ChangeRrayButton = New JButton ("Modify Array") ؛ ChangeRrayButton.AddActionListener (هذا) ؛ Bottom.Add (ChangeRrayButton) ؛ إضافة (أسفل ، borderlayout.south) ؛ } /** * نقرات زر العملية */ الفراغ العام actionperformed (Actionevent ae) { if (ae.getsource () == ChangearRayButton) { // تحقق أولاً من إدخال أي رمز if (codein.getText (). trim (). length ()! = 0) { // طريقة ModifyMemory () modifyarray () ؛ } آخر joptionpane.showmessagedialog (NULL ، "الرجاء إدخال شيء أولا.") ؛ } } /** * طريقة لمعالجة المصفوفة */ الفراغ العام modifyarray () { // عرض حوار لاسترداد العنوان الذي تم إدخاله السلسلة OrdectOmodify = (String) Joptionpane .showInputDialog ("في أي موقع؟") ؛ // تأكيد إذا تم إدخال سلسلة if ((addrateModify! = null) & amp ؛ & amp ؛ ( // تحويل إلى عدد صحيح إذا تم إدخال عنوان عشري ArrayIndex = integer.parseint (stoundTomodify) ؛ } // تمر كصبع عدد صحيح ProcessInput (ArrayIndex) ؛ } Public Void ProcessInput (int a) { String newValue = codein.getText () ؛ ArrayForupDate.instructionSin (NewValue ، A) ؛ } public void updatedisplay () { DisplayOutput.settext (Mlist) ؛ } } صف ArrayForupDating { السلسلة النهائية الثابتة العامة BOND_PROPERTY = "Proint Property" ؛ سلسلة خاصة boundproperty = "" ؛ swingpropertychangesupport spcsupport = جديد swingpropertychangesupport ( هذا)؛ StringBuilder Mlist ؛ خاص int [] myarray ؛ ArrayForupDating () { myarray = new int [5] ؛ لـ (int i = 0 ؛ i & lt ؛ myarray.length ؛ i) { myArray [i] = 0 ؛ } setarrayydisplayString () ؛ } /** * طريقة لإنشاء سلسلة من المنسقة من الصفيف */ الفراغ العام setarrayydisplayString () { // إنشاء StringBuilder للعرض في علامة التبويب الذاكرة Mlist = جديد StringBuilder () ؛

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3