swingPropertyChangesupport para atualizar dinamicamente o jtextarea
swingPropertyChangesupport é uma classe que pode ser usada para monitorar as alterações nas propriedades de um objeto. Isso permite que outros objetos sejam notificados quando uma propriedade muda, que pode ser útil para atualizar a GUI de acordo. digitado por meio de uma caixa de diálogo de entrada. A matriz é atualizada OK, mas a GUI não está atualizada. importar java.awt.event.actionEvent; importar java.awt.event.actionListener; importar java.awt.event.focuslistener; importar java.beans.propertyChangeEvent; importar java.beans.propertyChangelistener; importar javax.swing.jbutton; importar javax.swing.jframe; importar javax.swing.JOptionPane; importar javax.swing.jpanel; importar javax.swing.jtextarea; importar javax.swing.event.swingPropertyChangesupport; classe pública principal { public static void main (string [] arg) { GuiforUpdate display = new GuiforUpdate (); display.setVisible (true); } } classe GuiforUpdate estende JFrame implementa ActionListener { /** * */ private estático final serialversionUid = 1L; Listener de foco de foco privado; String privada mlist; Private JButton ChangeArrayButton; Private JTexTareA Codein, DisplayOutput; Private Int ArrayIndex; Display de JPanel privado; Private ArrayForUpDating ArrayForUpdate = new ArrayForUpDating (); public guiforupdate () { Setsize (224, 180); layoutLeft (); layoutDisplay (); layoutBottom (); } /** * Adiciona uma área de exibição para matriz */ public void layoutDisplay () { displayPanel = new JPanel (); add (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 (). ArrayForupdating.bound_property)) { mlist = (pcevt.getNewValue (). ToString ()); UpdatedIsplay (); } } }); displayOutput.Settext (mlist); } /** * adiciona elementos do lado esquerdo à esquerda à esquerda da GUI */ public void layoutleft () { Jpanel esquerdo = new jpanel (); add (esquerda, borderlayout.west); codein = new jtextarea (2, 2); esquerda.add (codein); codein.addfococusListener (FocusListener); } /** * adiciona elementos inferiores ao fundo da GUI */ public void layoutBottom () { JPanel inferior = new JPanel (); ChangeArrayButton = New JButton ("Modify Array"); ChangeArrayButton.addactionListener (isto); Bottom.Add (ChangeArrayButton); add (inferior, borderlayout.south); } /** * Botão de processo Cliques */ public void ActionPormed (ActionEvent Ae) { if (ae.getSource () == ChangeArrayButton) { // primeiro verifique se algum código inserido if (codein.getText (). TRIM (). Length ()! = 0) { // Chamada ModifyMemory () Método modifyArray (); } outro JoptionPane.ShowMessagedialog (NULL, "Por favor, digite algo primeiro."); } } /** * Método para processar modificar a matriz */ public void modifyArray () { // Mostrar diálogo para recuperar o endereço inserido String endereçoTomodify = (String) JoptionPane .ShowInputDialog ("Em que local?"); // Confirme se uma string foi inserida if ((endereçoTomodify! = NULL) & amp; & amp; (endereçoTomodify.length () & gt; 0)) { // converter para o número inteiro se o endereço decimal inserido ArrayIndex = Integer.parseint (endereçoTomodify); } // Passe como inteiro ProcessInput (ArrayIndex); } public void processinput (int a) { String newValue = codein.getText (); ArrayForUpdate.instructionsin (newValue, A); } public void updatedIsplay () { displayOutput.Settext (mlist); } } classe ArrayForupDating { public static final string bound_property = "Propriedade ligada"; Private String BoundProperty = ""; Private SwingPropertyChangesupport spcsupport = new swingPropertyChangesupport ( esse); mlist privado stringbuilder; private Int [] MyArray; public ArrayForUpDating () { MyArray = new int [5]; para (int i = 0; i & lt; myArray.length; i) { myarray [i] = 0; } setArrayyDisplayString (); } /** * Método para criar uma sequência formatada de matriz */ public void seTArrayyDisplayString () { // Crie StringBuilder para exibição na guia de memória mlist = new StringBuilder ();
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3