swingpropertyChangeSupport для динамического обновления JTextArea
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; открытый класс Main { public static void main (string [] arg) { Guiforupdate display = new guiforupdate (); display.setVisible (true); } } Класс Guiforupdate расширяет JFrame реализует ActionListener { /** * */ Частный статический конечный длинный SerialVersionuid = 1L; Private FocusListener FocusListener; частная строка MLIST; Частный Jbutton Changrearraybutton; private jtextarea codein, displayoutput; Частный int arrayindex; Частный JPanel DisplayPanel; Частный arrayforupdating arrayforupdate = new arrayforupdation (); public 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 () { @Override public void PropertyChange (PropertyChangeEvent pcevt) { if (pcevt.getpropertyname (). equals ( Arrayforupdation.bound_property)) { mlist = (pcevt.getNewValue (). toString ()); updatedIsplay (); } } }); DISPLAYOUTPUT.Settext (MLIST); } /** * добавляет элементы левой стороны слева от графического интерфейса */ public void mayOutleft () { Jpanel left = new jpanel (); Добавить (слева, borderlayout.west); codein = new jtextarea (2, 2); Left.Add (codein); codein.addfocuslistener (FocusListener); } /** * добавляет нижние элементы в нижнюю часть графического интерфейса */ public void layoutbottom () { JPanel Bottom = new jPanel (); Changearraybutton = new Jbutton ("Modify Array"); Changearraybutton.addactionListener (это); Bottom.Add (Changraybutton); Добавить (внизу, borderlayout.south); } /** * Кнопка процесса нажимает */ public void actionperformed (actionevent ae) { if (ae.getsource () == Changearraybutton) { // сначала проверьте, если какой -нибудь введен код if (codein.getText (). trim (). length ()! = 0) { // метод вызова modifymemory () modifyArray (); } еще Joptionpane.showmessageDialog (null, «Пожалуйста, введите что -нибудь сначала»); } } /** * Метод для обработки модификации массива */ public void modifyArray () { // показать диалог для получения введенного адреса String addresstomodify = (string) joptionpane .showinputdialog ("в каком месте?"); // Подтвердите, была ли введена строка if ((addrytomodify! = null) & amp; & amp; (addrestomodify.length () & gt; 0)) { // конвертируется в целое число, если введен десятичный десятичный адрес arrayindex = integer.parseint (addrestomodify); } // пройти как целое число ProcessInput (ArryIndex); } public void processInput (int a) { String newValue = codein.getText (); arrayforupdate.instructionsin (newvalue, a); } public void updateSplay () { DISPLAYOUTPUT.Settext (MLIST); } } класс ArrayForuPdating { Public Static Final String Bound_property = "Bound Property"; Private String Boundproperty = ""; Private SwingPropertyChangeSupport spcsupport = new SwingPropertyChangeSupport ( этот); Private StringBuilder MLIST; Частный int [] myarray; public arrayforupdation () { myarray = new int [5]; для (int i = 0; i & lt; myarray.length; i) { myarray [i] = 0; } setarrayydisplaystring (); } /** * Метод создания форматированной строки массива */ public void setarryydisplaystring () { // Создать StringBuilder для отображения в вкладке памяти mList = new StringBuilder ();
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3