Use SwingPropertyChangeSupport para atualizar JTextArea dinamicamente
Neste código, SwingPropertyChangeSupport é utilizado para acionar atualizações em um JTextArea sempre que o modelo de dados subjacente, representado pela classe ArrayForUpdating, muda. Isso permite a atualização dinâmica da GUI em resposta a mudanças no modelo de dados.
A classe ArrayForUpdating é responsável por manter uma matriz de números inteiros. Ele expõe uma instância SwingPropertyChangeSupport, permitindo que os ouvintes se registrem em eventos de alteração de propriedade. Sempre que o array é modificado, a classe ArrayForUpdating dispara um evento de mudança de propriedade, notificando os ouvintes registrados.
Na classe GuiForUpdate, uma instância de ArrayForUpdating é criada e registrada como um ouvinte de mudança de propriedade. Quando a matriz é modificada, o ouvinte é invocado e o valor modificado é recuperado. Este valor é então exibido no JTextArea (displayOutput) dentro da GUI.
O método processInput em GuiForUpdate é responsável por modificar o array. Ele coleta o valor inserido e o índice do usuário e atualiza a matriz de acordo.
A implementação ActionListener para changeArrayButton lida com o evento de clique do botão. Ele abre uma caixa de diálogo para permitir a entrada do usuário, processa a entrada e aciona a modificação da matriz. A área de texto displayOutput é então atualizada com os valores da matriz modificados.
Em resumo, SwingPropertyChangeSupport fornece um mecanismo para propagar alterações em modelos de dados para os componentes da GUI que dependem deles, garantindo que a GUI permaneça sincronizada com o dados subjacentes.
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